lecture graphic programming

59
L o g o Java Technology Улаанбаатар Их Сургууль 2013 он График програмчлал Багш Б.Ганзориг

Upload: ganzorigb

Post on 06-Aug-2015

87 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Lecture graphic programming

L o g o

Java Technology

Улаанбаатар Их Сургууль 2013 он

График програмчлалБагш Б.Ганзориг

Page 2: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Агуулга

Фонттой ажиллах3

Polygon зурах4

Java график боломж1

Өнгөтэй ажиллах2

Java 2 D API5

Даалгавар6

Page 3: Lecture graphic programming

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

Page 4: Lecture graphic programming

L o g o

Java Координатын систем

Жава технологи Улаанбаатар Их Сургууль 2013 он

X axis

Y axis

(0, 0)

(x, y)

+x

+y

Page 5: Lecture graphic programming

L o g o

Өнгөтэй ажиллах

Класс Color Өнгөтэй ажиллах функц тогтмолууд Өнгө нь улаан, ногоон, цэнхэр

өнгөний хослолоор үүснэ.• RGB утга

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 6: Lecture graphic programming

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

Page 7: Lecture graphic programming

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 классын байгуулагч болон функцүүд

Page 8: Lecture graphic programming

L o g o

Өнгөтэй ажиллах жишээ 1

Жава технологи Улаанбаатар Их Сургууль 2013 он

Програм эхлэх үед цонхыг зурах функц.

Тэгш өнцөгтийг сонгосон өнгөөр дүүргэн будаж

зурах функц.

Page 9: Lecture graphic programming

L o g o

Өнгөтэй ажиллах жишээ 1 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 10: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 11: Lecture graphic programming

L o g o

Өнгөтэй ажиллах жишээ 2

Жава технологи Улаанбаатар Их Сургууль 2013 он

JColorChooser нь өнгийг сонгох цонх гаргадаг.

Page 12: Lecture graphic programming

L o g o

Өнгөтэй ажиллах жишээ 2 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 13: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 14: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

JColorChooser классын HSB ба RGB сонголт

Page 15: Lecture graphic programming

L o g o

Фонттой ажиллах

Жава технологи Улаанбаатар Их Сургууль 2013 он

Класс FontФонттой ажиллах функц тогтмолуудыг

агуулна.Байгуулагч нь 3 аргументтай:

Фонтын нэр Arial Mon, SansSerif г.м

Фонтын хэлбэр Font.PLAIN, Font.BOLD, Font.ITALIC

Фонтын хэмжээ Цэгээр хэмжигдэнэ. (1/72 инч)

Page 16: Lecture graphic programming

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() Фонт нь ташуу байгаа эсэхийг тодорхойлно.

Page 17: Lecture graphic programming

L o g o

Фонттой ажиллах функцүүд

Жава технологи Улаанбаатар Их Сургууль 2013 он

public Font getFont() Одоо ашиглагдаж байгаа фонтыг заасан фонт обьект буцаана. public void setFont( Font f )

Ашиглах фонтыг фонт обьект ашиглан тогтооно.

Page 18: Lecture graphic programming

L o g o

Фонттой ажиллах жишээ 1

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 19: Lecture graphic programming

L o g o

Фонттой ажиллах жишээ 1 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 20: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 21: Lecture graphic programming

L o g o

Фонтын хэмжүүр

Фонтын хэмжүүр (FontMetric класс) Өндөр (Height) Үсгийн доогуурх хэмжээ (Descent) Үсгийн эзлэх өндөр хэмжээ (Ascent) Үсгийн дээгүүрх хэмжээ (Leading)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 22: Lecture graphic programming

L o g o

Фонтын хэмжүүр

Жава технологи Улаанбаатар Их Сургууль 2013 он

he ight Xy1Õ ascent

leading

baselinedescent

Page 23: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Фонт хэмжүүрийн функцүүд

Функц Тайлбар public int getAscent() Фонтын Ascent-г цэгийн тоогоор буцаана. public int getDescent() Фонтын Descent-г цэгийн тоогоор буцаана. public int getLeading() Фонтын Leading-г цэгийн тоогоор буцаана. public int getHeight() Фонтын өндөрийг цэгийн тоогоор буцаана.

Page 24: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Фонтын хэмжүүрийг авах графикийн функцүүд

Фонтын хэмжүүрийг авах графикийн функцүүд

public FontMetrics getFontMetrics()

Одоо ашиглагдаж байгаа фонтын хэмжүүрийг хэмжүүр обьектоор буцаана.

public FontMetrics getFontMetrics( Font f )

Заасан фонтын хэмжүүрийг хэмжүүр обьектоор буцаана.

Page 25: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Фонтын хэмжүүртэй ажиллах жишээ 1

Page 26: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Фонтын хэмжүүртэй ажиллах жишээ 1 (үргэлжлэл)

Page 27: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 28: Lecture graphic programming

L o g o

Graphics класс

Жава технологи Улаанбаатар Их Сургууль 2013 он

Шулуун, тэгш өнцөгт, зууван зурах функцийг агуулна.

Бүх зурах функц нь өндөр, өргөн гэсэн аргументийг ашиглана.

Page 29: Lecture graphic programming

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 утгууд нь өнцгийн дугуйрлын хэмжээг заана.

Page 30: Lecture graphic programming

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) байна.

Page 31: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Graphics класс ашигласан жишээ 1

Page 32: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Graphics класс ашигласан жишээ 1 (үргэлжлэл)

Page 33: Lecture graphic programming

L o g o

Жава технологи Улаанбаатар Их Сургууль 2013 он

Үр дүн

Page 34: Lecture graphic programming

L o g o

Зууван булантай тэгш өнцөгт

Жава технологи Улаанбаатар Их Сургууль 2013 он

(x, y)

arc height

arc width

width

height

Page 35: Lecture graphic programming

L o g o

Зууванг хүрээлсэн тэгш өнцөгт

Жава технологи Улаанбаатар Их Сургууль 2013 он

(x, y)

height

width

Page 36: Lecture graphic programming

L o g o

Нум зурах

Класс Arc Зуувангийн нэг хэсэг юм. Өнцгөөр хэмжигдэж зурагдана.

• Цагийн эсрэг өнцөг нь эерэг тоогоор• Цагийн дагуу өнцөг нь сөрөг тоогоор

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 37: Lecture graphic programming

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 ) Битүү нум буюу сектор зурна.

Page 38: Lecture graphic programming

L o g o

Нум зурах жишээ 1

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 39: Lecture graphic programming

L o g o

Нум зурах жишээ 1 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 40: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 41: Lecture graphic programming

L o g o

Polygon зурах

Класс Polygon Олон талтай дүрс зурна. Polylines: Олон цэгээр холбогдсон дүрс

зурна.

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 42: Lecture graphic programming

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 )

Обьект хэлбэрээр өгөгдсөн цул полигоныг зурна.

Page 43: Lecture graphic programming

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) цэг нэмнэ.

Page 44: Lecture graphic programming

L o g o

Polygon зурах жишээ 1

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 45: Lecture graphic programming

L o g o

Polygon зурах жишээ 1 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 46: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 47: Lecture graphic programming

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 он

Page 48: Lecture graphic programming

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 он

Page 49: Lecture graphic programming

L o g o

Graphics2D функцүүдээсsetPaint

Зурах өнгийг сонгоно.• Жирийн өнгө Color.RED• Gradient : Нэг өнгөнөөс нөгөөх рүү ууссан байдалтай• Texture : Дүрсийг ямар нэг дүрсээр дүүргэх

Fill Өгөгдсөн дүрсийг цул болгоно.

Draw Өгөгдсөн дүрсийг зурна.

setStroke Зураасын өргөнийг тодорхойлно.

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 50: Lecture graphic programming

L o g o

Graphics2D функцүүдээсTranslate

Координатын эхийг өөрчилнө.BufferedImage классыг ашиглан өнгөт болон

хар цагаан зураг үүсгэж болно.GeneralPath класс ашиглан олон цэгүүдийг

тодорхой дарааллааар шулуунуудаар холбоход хэрэглэнэ. moveTo зурах эхний цэгийг тодорхойлно. lineTo хамгийн сүүлийн цэгээс аргументаар орж

ирсэн цэг рүү шулуун татна. Close Сүүлийн цэгийг эхний цэгтэй холбоно.

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 51: Lecture graphic programming

L o g o

Graphics2D жишээ 1

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 52: Lecture graphic programming

L o g o

Graphics2D жишээ 1 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 53: Lecture graphic programming

L o g o

Graphics2D жишээ 1 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 54: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 55: Lecture graphic programming

L o g o

Graphics2D жишээ 2

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 56: Lecture graphic programming

L o g o

Graphics2D жишээ 2 (үргэлжлэл)

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 57: Lecture graphic programming

L o g o

Үр дүн

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 58: Lecture graphic programming

L o g o

Даалгавар

Дараах зургуудыг зур: Уул, гол, гэр, машин, тэнгэр, солонго, нар.

(Солонго 7 өнгөөр градиент, нар улаанаас шар цикл градиент, нарны цацрагийг улаан шар градиент тасархай хэлбэртэйгээр хийнэ.)

Санчир гариг. Гариг болон бүслүүр нь градиентээр хийгдэнэ. Сансар одуудыг давталт ашиглан зурна. Сансрын хөлөг зур.

Жава технологи Улаанбаатар Их Сургууль 2013 он

Page 59: Lecture graphic programming

L o g o

Java Technology

Улаанбаатар Их Сургууль 2013 он