lecture graphic programming
TRANSCRIPT
L o g o
Java Technology
Улаанбаатар Их Сургууль 2013 он
График програмчлалБагш Б.Ганзориг
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Агуулга
Фонттой ажиллах3
Polygon зурах4
Java график боломж1
Өнгөтэй ажиллах2
Java 2 D API5
Даалгавар6
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Classes and interfaces from the Java2D API that appear in package java.awt
Object
Color
Component
Font
FontMetrics
Graphics
Polygon
Graphics2D interface java.awt.Paint
interface java.awt.Shape
interface java.awt.Stroke
Classes from the Java2D API that appear in package java.awt.geom
GradientPaint
BasicStroke
TexturePaint
RectangularShape
GeneralPath
Line2D
RoundRectangle2D
Arc2D
Ellipse2D
Rectangle2D
L o g o
Java Координатын систем
Жава технологи Улаанбаатар Их Сургууль 2013 он
X axis
Y axis
(0, 0)
(x, y)
+x
+y
L o g o
Өнгөтэй ажиллах
Класс Color Өнгөтэй ажиллах функц тогтмолууд Өнгө нь улаан, ногоон, цэнхэр
өнгөний хослолоор үүснэ.• RGB утга
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Тогтмолууд
Жава технологи Улаанбаатар Их Сургууль 2013 он
Color constant Color RGB value public final static Color ORANGE orange 255, 200, 0 public final static Color PINK pink 255, 175, 175
public final static Color CYAN cyan 0, 255, 255
public final static Color MAGENTA magenta 255, 0, 255
public final static Color YELLOW yellow 255, 255, 0
public final static Color BLACK black 0, 0, 0
public final static Color WHITE white 255, 255, 255
public final static Color GRAY gray 128, 128, 128
public final static Color LIGHT_GRAY light gray 192, 192, 192
public final static Color DARK_GRAY dark gray 64, 64, 64
public final static Color RED red 255, 0, 0
public final static Color GREEN green 0, 255, 0
public final static Color BLUE blue 0, 0, 255
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Функц Тайлбар public Color( int r, int g, int b )
Улаан, ногоон, цэнхэр өнгийг 0-255 хоорондох утгаар өгч өнгө үүсгэх байгуулагч функц
public Color( float r, float g, float b )
Улаан, ногоон, цэнхэр өнгийг 0.0-1.0 хоорондох утгаар өгч өнгө үүсгэх байгуулагч функц
public int getRed() Улаан өнгийн хэмжээг 0-255 утгаар буцаана.
public int getGreen()
Ногоон өнгийн хэмжээг 0-255 утгаар буцаана.
public int getBlue()
Цэнхэр өнгийн хэмжээг 0-255 утгаар буцаана.
Өнгөтэй ажиллах Graphics классын функцүүд
public Color getColor()
Өнгийг Color обьектоор буцаана.
public void setColor( Color c )
Зурах өнгийг тогтооно.
Color классын байгуулагч болон функцүүд
L o g o
Өнгөтэй ажиллах жишээ 1
Жава технологи Улаанбаатар Их Сургууль 2013 он
Програм эхлэх үед цонхыг зурах функц.
Тэгш өнцөгтийг сонгосон өнгөөр дүүргэн будаж
зурах функц.
L o g o
Өнгөтэй ажиллах жишээ 1 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Өнгөтэй ажиллах жишээ 2
Жава технологи Улаанбаатар Их Сургууль 2013 он
JColorChooser нь өнгийг сонгох цонх гаргадаг.
L o g o
Өнгөтэй ажиллах жишээ 2 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
JColorChooser классын HSB ба RGB сонголт
L o g o
Фонттой ажиллах
Жава технологи Улаанбаатар Их Сургууль 2013 он
Класс FontФонттой ажиллах функц тогтмолуудыг
агуулна.Байгуулагч нь 3 аргументтай:
Фонтын нэр Arial Mon, SansSerif г.м
Фонтын хэлбэр Font.PLAIN, Font.BOLD, Font.ITALIC
Фонтын хэмжээ Цэгээр хэмжигдэнэ. (1/72 инч)
L o g o
Фонт байгуулагч, тогтмол, функцүүд
Жава технологи Улаанбаатар Их Сургууль 2013 он
Функц тогтмол Тайлбар public final static int PLAIN
Энгийн хэлбэрээр бичих
public final static int BOLD
Өргөн үсгээр бичих
public final static int ITALIC
Ташуу үсгээр бичих
public Font( String name, int style, int size )
Заагдсан фонт, хэлбэр, хэмжээтэй фонт обьект үүсгэнэ.
public int getStyle() Фонтын хэлбэрийг заасан бүхэл тоо буцаана. public int getSize() Фонтын хэмжээг заасан бүхэл тоо буцаана. public String getName() Фонтын нэрийг тэмдэгт мөрөөр буцаана. public String getFamily() Фонтын family нэрийг тэмдэгт мөрөөр
буцаана. public boolean isPlain() Фонт нь энгийн байгаа эсэхийг шалгана. public boolean isBold() Фонт нь өргөн байгаа эсэхийг шалгана. public boolean isItalic() Фонт нь ташуу байгаа эсэхийг тодорхойлно.
L o g o
Фонттой ажиллах функцүүд
Жава технологи Улаанбаатар Их Сургууль 2013 он
public Font getFont() Одоо ашиглагдаж байгаа фонтыг заасан фонт обьект буцаана. public void setFont( Font f )
Ашиглах фонтыг фонт обьект ашиглан тогтооно.
L o g o
Фонттой ажиллах жишээ 1
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Фонттой ажиллах жишээ 1 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Фонтын хэмжүүр
Фонтын хэмжүүр (FontMetric класс) Өндөр (Height) Үсгийн доогуурх хэмжээ (Descent) Үсгийн эзлэх өндөр хэмжээ (Ascent) Үсгийн дээгүүрх хэмжээ (Leading)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Фонтын хэмжүүр
Жава технологи Улаанбаатар Их Сургууль 2013 он
he ight Xy1Õ ascent
leading
baselinedescent
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Фонт хэмжүүрийн функцүүд
Функц Тайлбар public int getAscent() Фонтын Ascent-г цэгийн тоогоор буцаана. public int getDescent() Фонтын Descent-г цэгийн тоогоор буцаана. public int getLeading() Фонтын Leading-г цэгийн тоогоор буцаана. public int getHeight() Фонтын өндөрийг цэгийн тоогоор буцаана.
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Фонтын хэмжүүрийг авах графикийн функцүүд
Фонтын хэмжүүрийг авах графикийн функцүүд
public FontMetrics getFontMetrics()
Одоо ашиглагдаж байгаа фонтын хэмжүүрийг хэмжүүр обьектоор буцаана.
public FontMetrics getFontMetrics( Font f )
Заасан фонтын хэмжүүрийг хэмжүүр обьектоор буцаана.
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Фонтын хэмжүүртэй ажиллах жишээ 1
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Фонтын хэмжүүртэй ажиллах жишээ 1 (үргэлжлэл)
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics класс
Жава технологи Улаанбаатар Их Сургууль 2013 он
Шулуун, тэгш өнцөгт, зууван зурах функцийг агуулна.
Бүх зурах функц нь өндөр, өргөн гэсэн аргументийг ашиглана.
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Graphics класстай ажиллах функцуудФункц Тайлбар
public void drawLine( int x1, int y1, int x2, int y2 ) (x1, y1) ба (x2, y2) цэгүүдийг холбосон шулуун зурна.
public void drawRect( int x, int y, int width, int height )
Заасан өндөр ба өргөнтэй тэгш өнцөгт зурна.Тэгш өнцөгтийн зүүн дээд булангийн координат нь (x, y) байна.
public void fillRect( int x, int y, int width, int height )
Заасан өндөр ба өргөнтэй цул тэгш өнцөгт зурна. Зурахын өмнө өнгийн зааж өгсөн байна. Тэгш өнцөгтийн зүүн дээд булангийн координат нь (x, y) байна.
public void clearRect( int x, int y, int width, int height )
Одоо байгаа дэлгэцийн өнгөн дээр заасан өндөр ба өргөнтэй цул тэгш өнцөгт зурна. Тэгш өнцөгтийн зүүн дээд булангийн координат нь (x, y) байна.
public void drawRoundRect( int x, int y, int width, int height, int arcWidth, int arcHeight )
Өнцгүүд нь дугуйрсан тэгш өнцөгт зурна. arcWidth ба arcHeight утгууд нь өнцгийн дугуйрлын хэмжээг заана.
public void fillRoundRect( int x, int y, int width, int height, int arcWidth, int arcHeight )
Өнцгүүд нь дугуйрсан тэгш өнцөгтийг заагдсан өнгөөр дүүргэн зурна. arcWidth ба arcHeight утгууд нь өнцгийн дугуйрлын хэмжээг заана.
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Graphics класстай ажиллах функцууд
Функц Тайлбар public void draw3DRect( int x, int y, int width, int height, boolean b ) Одоо байгаа өнгөөр заагдсан өндөр өргөнтэй гурван хэмжээст тэгш өнцөгт
зурна. Тэгш өнцөгтийн зүүн дээд координат нь (x, y) байна. Хэрвээ b нь true бол тэгш өнцөгт нь товойсон хэлбэртэй үгүй бол хавтгай тэгш өнцөгт зурна.
public void fill3DRect( int x, int y, int width, int height, boolean b )
Одоо байгаа өнгөөр заагдсан өндөр өргөнтэй гурван хэмжээст цул тэгш өнцөгт зурна. Тэгш өнцөгтийн зүүн дээд координат нь (x, y) байна. Хэрвээ b нь true бол тэгш өнцөгт нь товойсон хэлбэртэй үгүй бол хавтгай тэгш өнцөгт зурна.
public void drawOval( int x, int y, int width, int height )
Одоо байгаа өнгөөр заагдсан өргөн өндөртэй зууван зурна. Зууванг агуулж байгаа тэгш өнцөгтийн зүүн дээд координат нь (x, y) байна.
public void fillOval( int x, int y, int width, int height )
Одоо байгаа өнгөөр заагдсан өргөн өндөртэй цул зууван зурна. Зууванг агуулж байгаа тэгш өнцөгтийн зүүн дээд координат нь (x, y) байна.
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Graphics класс ашигласан жишээ 1
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Graphics класс ашигласан жишээ 1 (үргэлжлэл)
L o g o
Жава технологи Улаанбаатар Их Сургууль 2013 он
Үр дүн
L o g o
Зууван булантай тэгш өнцөгт
Жава технологи Улаанбаатар Их Сургууль 2013 он
(x, y)
arc height
arc width
width
height
L o g o
Зууванг хүрээлсэн тэгш өнцөгт
Жава технологи Улаанбаатар Их Сургууль 2013 он
(x, y)
height
width
L o g o
Нум зурах
Класс Arc Зуувангийн нэг хэсэг юм. Өнцгөөр хэмжигдэж зурагдана.
• Цагийн эсрэг өнцөг нь эерэг тоогоор• Цагийн дагуу өнцөг нь сөрөг тоогоор
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Нум зурах
Жава технологи Улаанбаатар Их Сургууль 2013 он
Функц Тайлбар public void drawArc( int x, int y, int width, int height, int startAngle, int arcAngle ) Зууванг агуулж буй тэгш өнцөгтийн зүүн дээд координатаас (x, y)
өгөгдсөн өндөр өргөнтэй нум зурна. startAngle өнцгөөс эхлэн arcAngle өнцөг хүртэл зурна.
public void fillArc( int x, int y, int width, int height, int startAngle, int arcAngle ) Битүү нум буюу сектор зурна.
L o g o
Нум зурах жишээ 1
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Нум зурах жишээ 1 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Polygon зурах
Класс Polygon Олон талтай дүрс зурна. Polylines: Олон цэгээр холбогдсон дүрс
зурна.
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g oPolygon зурах график функцууд
Жава технологи Улаанбаатар Их Сургууль 2013 он
Функц Тайлбар public void drawPolygon( int xPoints[], int yPoints[], int points )
Полигон зурна.. Цэг бүрийн х координат нь xPoints массивт байх бол цэг бүрийн y координат нь yPoints массивт байрлана. Сүүлийн аргумент нь цэгийн тоог заана. Энэ функц нь битүү полигон зурна. Хэрвээ сүүлчийн цэг нь эхний цэгээс өөр цэг байвал сүүлийн ба эхний цэг нь шулуунаар холбогдоно.
public void drawPolyline( int xPoints[], int yPoints[], int points )
Хоорондоо холбогдсон шулуунуудыг зурна. Цэг бүрийн х координат нь xPoints массивт байх бол цэг бүрийн y координат нь yPoints массивт байрлана. Сүүлийн аргумент нь цэгийн тоог заана. Хэрвээ сүүлчийн цэг нь эхний цэгээс өөр цэг байвал сүүлийн ба эхний цэг нь шулуунаар холбогдогдохгүй.
public void drawPolygon( Polygon p )
Обьектоор орж ирсэн полигоныг зурна.
public void fillPolygon( int xPoints[], int yPoints[], int points )
Цул полигон зурна.. Цэг бүрийн х координат нь xPoints массивт байх бол цэг бүрийн y координат нь yPoints массивт байрлана. Сүүлийн аргумент нь цэгийн тоог заана. Энэ функц нь битүү полигон зурна. Хэрвээ сүүлчийн цэг нь эхний цэгээс өөр цэг байвал сүүлийн ба эхний цэг нь шулуунаар холбогдоно.
public void fillPolygon( Polygon p )
Обьект хэлбэрээр өгөгдсөн цул полигоныг зурна.
L o g o
Polygon байгуулах функцууд
Жава технологи Улаанбаатар Их Сургууль 2013 он
Функц Тайлбар
public Polygon()
Шинэ полигон обьект үүсгэнэ. Дотроо цэг агуулаагүй байна. public Polygon( int xValues[], int yValues[], int numberOfPoints )
Шинэ полигон обьект үүсгэнэ. Энэ полигон нь numberOfPoints ширхэг талтай байх бөгөөд, энэ талуудын цэгүүдийн х координат нь xValues массивт, y координат нь yValues массивт байрлана.
public void addPoint( int x, int y )
Полигонд (x, y) цэг нэмнэ.
L o g o
Polygon зурах жишээ 1
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Polygon зурах жишээ 1 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Java 2D API
Java 2D API 2D график боломж олгодог.
java.awtjava.awt.imagejava.awt.colorjava.awt.fontjava.awt.geomjava.awt.printjava.awt.image.renderable
java.awt.Graphics2D класс ашиглахExtends class java.awt.Graphics
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Java 2D API
Java 2D дүрсүүд Package java.awt.geom
• Ellipse2D.Double Ellipse2D класс дотор Double гэсэн дотоод статик класс байдаг. Түүнийг нь ашиглахдаа ингэж бичдэг. Энэ нь утгуудыг нь Double төрөлтэйгээр өгч болохыг харуулна. Мөн Ellipse2D.Float ч гэж байна.
• Rectangle2D.Double• RoundRectangle2D.Double• Arc3D.Double• Lines2D.Double
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics2D функцүүдээсsetPaint
Зурах өнгийг сонгоно.• Жирийн өнгө Color.RED• Gradient : Нэг өнгөнөөс нөгөөх рүү ууссан байдалтай• Texture : Дүрсийг ямар нэг дүрсээр дүүргэх
Fill Өгөгдсөн дүрсийг цул болгоно.
Draw Өгөгдсөн дүрсийг зурна.
setStroke Зураасын өргөнийг тодорхойлно.
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics2D функцүүдээсTranslate
Координатын эхийг өөрчилнө.BufferedImage классыг ашиглан өнгөт болон
хар цагаан зураг үүсгэж болно.GeneralPath класс ашиглан олон цэгүүдийг
тодорхой дарааллааар шулуунуудаар холбоход хэрэглэнэ. moveTo зурах эхний цэгийг тодорхойлно. lineTo хамгийн сүүлийн цэгээс аргументаар орж
ирсэн цэг рүү шулуун татна. Close Сүүлийн цэгийг эхний цэгтэй холбоно.
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics2D жишээ 1
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics2D жишээ 1 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics2D жишээ 1 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics2D жишээ 2
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Graphics2D жишээ 2 (үргэлжлэл)
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Үр дүн
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Даалгавар
Дараах зургуудыг зур: Уул, гол, гэр, машин, тэнгэр, солонго, нар.
(Солонго 7 өнгөөр градиент, нар улаанаас шар цикл градиент, нарны цацрагийг улаан шар градиент тасархай хэлбэртэйгээр хийнэ.)
Санчир гариг. Гариг болон бүслүүр нь градиентээр хийгдэнэ. Сансар одуудыг давталт ашиглан зурна. Сансрын хөлөг зур.
Жава технологи Улаанбаатар Их Сургууль 2013 он
L o g o
Java Technology
Улаанбаатар Их Сургууль 2013 он