Чекор по чекор
Почетни чекори со Java
Објектно оријентирани концепти во Јава - Прв дел
Објектно оријентирани концепти во Јава - Втор дел
Објектно оријентирани концепти во Јава - Трет дел
Јава сервлети - Прв дел
Единствен Јава објект (singleton)
Најчести 10 грешки што ги прават Java програмерите
повеќе...
Што е тоа ...
... IDE
... Tomcat
... објект?
... класа?
... наследување?
... интерфејс?
... наследување? (прашања и одговори)
повеќе...
За загревање
Нов проект во Eclipse?
Примитивни податочни типови
Променливи
Оператори
Доделувачки, аритметички и Unary оператори
Оператори за еднаквост, релации и услови
Изрази, искази и блокови
повеќе...
Како да ...
... конвертирам java.sql.Timestamp во java.util.Date
... зададам формат на датум
... ковертирам „long“ во HEX и обратно
... прочитам датотека и променам стринг
... креирам ZIP датотека
... поврзам Apache и Tomcat користејќи mod_jk
... пратам недефиниран број на атрибути до некоја метода
повеќе...
Java преку примери
new Socket(String addr,int port)
new URL(String address)
new URL(String protocol, String host, int port, String file)
CommPort: getInputStream()
CommPortIdentifier: getPortIdentifiers()
Statement: executeQuery(String sql)
Statement: getMaxRows()
повеќе...
Грешка
Нов напис
Рубрика:
Наслов:
  
  

страна број:123
Основи на 2D графика во Java
ЦРТАЊЕ ГЕОМЕТРИСКИ ОБЈЕКТИ

Во овој дел ќе бидне објаснето креирањето на основните облици како што се точки, линии, криви, правоаголници и елипси. Неколку класи од пакетот java.awt.geom ни овозможуваат креирање на овие објекти. За рендерирање на примерите кои ќе ги цртаме ќе ја користиме класата Graphics2D. Најпрвин креираме Graphics2D објект на пример преку кастирање  на Graphics параметар во некојa метод paint():

public void paint(Graphics g){
    Graphics2D g2=(Graphics2D) g;

}


Точка

Класата Point креира точка определена со координати (x,y) во координатниот простор. Подкласите Point2D.Float и Point2D.Double обезбедуваат float и double прецизност соодветно, за зачувување на координатите на точката.

//Create Point2D.Double
Point2D.Double point = new Point2D.Double (x,y);

Дифолтниот конструктор Point2D.Double() креира точка на позиција (0,0). Со методата setLocation() можеме да ја подесиме позицијата на точката на следниот начин:
·    setLocation(double x, double y) – преку дефинирање на координати како double вредности и
·    setLocation(Point2D p) – за поставување на локација на точката користејќи ги координатите на друга точка p.
Исто така, класата Point2D содржи методи за пресметување на растојание од моменталната точка до некоја друга точка со дадени координати или пак растојание помеѓу две точки.

Линија

Line2D класата претставува линија во (x,y) координатен простор. Подкласите Line2D.Float и Line2D.Double специфицираат линии со float и double прецизност соодветно. На пример:

//draw Line2D.Double
g2.draw(new Line2D.Double(x1, y1, x2, y2));

Оваа класа вклучува неколку setline() методи за дефинирање на крајните точки на линијата. Крајните точки на линиите можат да бидат специфицирани и преку конструкторите, како на пример:
·    Line2D.Float (float x1, float x2, float y1, float y2)
·    Line2D.Float (Point2D p1, Point2D p2)

Се користи Stroke објектот од Graphics2D класата за да се дефинира линијата.

Квадратни криви

Класата QuadCurve2D го имплементира Shape интерфејсот. Оваа класа претставува квадратна параметарска крива во xy координате простор. Подкласите QuadCurve2D.Float и QuadCurve2D.Double специфицираат квадратна крива со float и double прецизност.
Неколку setCurve методи се користат за дефинирање на две крајни и една контролна точка, чии координати можат да бидат дефинирани директно или преку координати од други точки или пак со користење на дадена низа (array).


//create new QuadCurve2D.Float
QuadCurve2D q = new QuadCurve2D.Float();
//draw QuadCurve2D.Float with set coordinates
q.setCurve(x1, y1, ctrlX, ctrlY, x2, y2);
g2.draw(q);



Кубични криви

Класата CubicCurve2D исто така го имплементира Shape методот. Оваа класа дефинира кубична параметарска крива во xy координате простор. Подкласите CubicCurve2D.Float и CubicCurve2D.Double специфицираат кубична крива со float и double прецизност соодветно.
CubicCurve2D класата има слични методи со QuadCurve2D класата со таа разлика што има и втора контролна точка. На пример:


//create new CubicCurve2D.Double
CubicCurve2D q = new CubicCurve2D.Double();
//draw CubicCurve2D.Float with set coordinates
q.setCurve(x1, y1, ctrlX1, ctrlY1, ctrlX2, ctrlY2, x2, y2);
g2.draw(q);


Правоаголници

Класите преку кои се определени примитивите кои ќе ги опишеме во овој дел ја наследуваат RectangularShape класата, која пак го имплементира Shape интерфејсот и додава неколку свои методи. Со овие методи се овозможува пристап до информациите за локацијата и големината на обликот, определување на централната точка на правоаголникот и поставување граници на обликот.
Rectangle2D класата претставува правоаголник дeфиниран преку локација (x,y) и димензии m x n. Подкласите Rectangle2D.Float и Rectangle2D.Double дефинираат правоаголници со поголема прецизност. На пример:


// draw Rectangle2D.Double
g2.draw(new Rectangle2D.Double(x, y, rectwidth, rectheight));


RounfRectangle2D класата дефинира правоаголник со заоблени агли. Правоаголникот е определен со локација (x, y), димензии m x n и висина и широчина на кружните исечоци поставени на местото на темињата. Подкласите RoundRectangle2D.Fload и RoundRectangle2D.Double  дефинираат заоблен правоаголник со поголема прецизност.
Методата setRoundRect(double a, double y, double w, double h, double arcWidth, double arcHeight) се користи за поставување на локацијата, големината и параметрите на заоблените темиња.

// draw RoundRectangle2D.Double
g2.draw(new RoundRectangle2D.Double(x, y, rectwidth, rectheight, 10, 10));


Елипси

Ellipse2D класата определува елипса дефинирана преку граници на правоаголник. Поголема прецизност при дефинирање на елипси даваат подкласите Ellipse2D.Float и Ellipse2D.Double. Елипса потполно е дефинирана со локација и должина и ширина. На пример:


// draw Ellipse2D.Double
g2.draw(new Ellipse2D.Double(x, y, rectwidth, rectheight));


Кружни лаци (Arcs)

За да се исцрта дел од елипса се користи класата Arc2D. Оваа класа определува лак ограничен со правоаголник, почетен агол, аголен опсег (angular extent) и тип на затворање. За поголема прецизност при дефинирањето на лаците допринесуваат подкласите Arc2D.Float и Arc2D.Double.
Arc2D класата ги дефинира следниве неколку типа на лаци претставени преку соодветните константи во класата: OPEN, PIE и CHORD.
 

Постојат неколку начини на сетирање на големината и параметрите на даден лак:
·    Директно, преку координати
·    Преку Point2D и Dimension2D
·    преку копирање на веќе постоечка Arc2D

Исто така, може да се користи setArcVyCenter методата за специфицирање на лак од централна точка определена преку координати и радиус.

// draw Arc2D.Double
g2.draw(new Arc2D.Double(x, y, rectwidth, rectheight, 90, 135, Arc2D.OPEN));
страна број: 1 2 3 4 5 6 7 8 9 << претходна страна : : следна страна >> 
 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


пребарување
најди
 
Форум
 
JugMK
GetJava Download Button
http://www.eclipse.org
 
 
 
 
Copyrights © 2006 - 2017 by Java.com.mk
Права и правила за користење на java.com.mk
Контакт адреса:
contact AT java.com.mk
Powered by Supernova v.0.70 beta
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc.
Сите други трговски марки се сопственост на нивните сопственици.