lecture11 12

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

Upload: ganzorigb

Post on 16-Feb-2017

801 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lecture11 12

L o g o

Object Oriented Programming

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

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

Page 2: Lecture11 12

L o g o

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Агуулга

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

Polygon зурах4

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

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

Java 2 D API5

Даалгавар6

Page 3: Lecture11 12

L o g o

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Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 4: Lecture11 12

L o g oJava Координатын систем

X axis

Y axis

(0, 0)

(x, y)

+x

+y

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 5: Lecture11 12

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

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

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

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

Page 6: Lecture11 12

L o g oТогтмолууд

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 7: Lecture11 12

L o g o

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 8: Lecture11 12

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

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

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

зурах функц.

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 9: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 10: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 11: Lecture11 12

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 12: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 13: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 14: Lecture11 12

L o g oҮр дүн

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 15: Lecture11 12

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

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

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

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 16: Lecture11 12

L o g oФонт байгуулагч, тогтмол, функцүүдФункц тогтмол Тайлбар 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() Фонт нь ташуу байгаа эсэхийг тодорхойлно.

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 17: Lecture11 12

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 18: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 19: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 20: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 21: Lecture11 12

L o g oФонтын хэмжүүр

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 22: Lecture11 12

L o g oФонтын хэмжүүр

height Xy1Õ ascent

leading

baselinedescent

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 23: Lecture11 12

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 24: Lecture11 12

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

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

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

public FontMetrics getFontMetrics( Font f )

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 25: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 26: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 27: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 28: Lecture11 12

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 29: Lecture11 12

L o g oGraphics класстай ажиллах функцуудФункц Тайлбар

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 30: Lecture11 12

L o g oGraphics класстай ажиллах функцууд

Функц Тайлбар 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) байна.

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 31: Lecture11 12

L o g oGraphics класс ашигласан жишээ 1

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 32: Lecture11 12

L o g oGraphics класс ашигласан жишээ 1 (үргэлжлэл)

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 33: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 34: Lecture11 12

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

(x, y)

arc height

arc width

width

height

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 35: Lecture11 12

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

(x, y)

height

widthОбъект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 36: Lecture11 12

L o g oНум зурах

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 37: Lecture11 12

L o g oНум зурах

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 38: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 39: Lecture11 12

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 40: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 41: Lecture11 12

L o g oPolygon зурах

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

зурна.

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 42: Lecture11 12

L o g oPolygon зурах график функцууд

Функц Тайлбар 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 ) Обьект хэлбэрээр өгөгдсөн цул полигоныг зурна.

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 43: Lecture11 12

L o g oPolygon байгуулах функцуудФункц Тайлбар

public Polygon() Шинэ полигон обьект үүсгэнэ. Дотроо цэг агуулаагүй байна. public Polygon( int xValues[], int yValues[], int numberOfPoints ) Шинэ полигон обьект үүсгэнэ. Энэ полигон нь numberOfPoints

ширхэг талтай байх бөгөөд, энэ талуудын цэгүүдийн х координат нь xValues массивт, y координат нь yValues массивт байрлана.

public void addPoint( int x, int y ) Полигонд (x, y) цэг нэмнэ.

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 44: Lecture11 12

L o g oPolygon зурах жишээ 1

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 45: Lecture11 12

L o g oPolygon зурах жишээ 1 (үргэлжлэл)

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 46: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 47: Lecture11 12

L o g oJava 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: Lecture11 12

L o g oJava 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: Lecture11 12

L o g oGraphics2D функцүүдээсsetPaint

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

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

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 50: Lecture11 12

L o g oGraphics2D функцүүдээсTranslate

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

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

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 51: Lecture11 12

L o g oGraphics2D жишээ 1

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 52: Lecture11 12

L o g oGraphics2D жишээ 1 (үргэлжлэл)

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 53: Lecture11 12

L o g oGraphics2D жишээ 1 (үргэлжлэл)

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 54: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 55: Lecture11 12

L o g oGraphics2D жишээ 2

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 56: Lecture11 12

L o g oGraphics2D жишээ 2 (үргэлжлэл)

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 57: Lecture11 12

L o g oҮр дүн

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 58: Lecture11 12

L o g oДаалгаварДараах зургуудыг зур:

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

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

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Page 59: Lecture11 12

L o g o

Object Oriented Programming

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