Den abstrakta klassen Shape |
import se.lth.cs.pt.graphics.Shape; |
Denna klass är lite speciell, du kan inte skapa
Shape
-objekt, den beskriver bara de operationer som är
gemensamma för olika slags figurer (Rectangle
,
Oval
, etc). Du kan alltså använda operationerna nedan
på alla figurklasser, som i följande exempel:
GraphicsWindow w = ...
Rectangle rect = new Rectangle(100, 100, 80, 40);
w.add(rect);
rect.move(40, -20);
rect.rotate(-15);
Oval oval = new Oval(250, 300, 50, 50);
w.add(oval);
oval.moveTo(300, 100);
Text text = new Text(300, 200, "Text som skall skrivas ut");
w.add(text);
text.rotate(30);
text.move(30, 50);
text.setMessage("Ny text...");
GraphicsWindow w = ...
Sprite ball = new Sprite("ball.png", 200, 200);
w.add(ball);
w.move(5, -5);
De olika figurklasserna är alltså:
Rectangle
:
beskriver en liten rektangel.
Oval
:
beskriver en liten rektangel.
Text
:
beskriver en liten rektangel.
Sprite
:
beskriver en liten rektangel.
Observera: Alla figurer i ett fönster ligger ovanpå
bakgrunden, och alla linjer som ritas med drawLine
ligger
i bakgrunden, så eventuella linjer kommer att täckas av figurerna.
Metoder |
double getX() |
| Ger x-koordinaten för figurens mittpunkt. |
| Returnerar x-koordinaten (som ett double -värde). |
|
double getY() |
| Ger y-koordinaten för figurens mittpunkt. |
| Returnerar y-koordinaten (som ett double -värde). |
|
boolean covers(double x, double y) |
| Avgör om figuren täcker en given punkt (om figuren aldrig
ritats i ett fönster så täcker den inga punkter). |
|
Parametrar: |
| x : | punktens x-koordinat. |
| y : | punktens y-koordinat. |
|
| Returnerar true om punkten täcks, false
annars. |
|
void moveTo(GraphicsWindow_ w, double x, double y) |
| Flyttar figurens mittpunkt till nya koordinater i ett givet
fönster. |
|
Parametrar: |
| w : | det fönster som figuren skall ritas i. |
| x : | ny x-koordinat. |
| y : | ny y-koordinat. |
|
|
void moveTo(double x, double y) |
| Flyttar figurens mittpunkt till nya koordinater (i samma
fönster som tidigare). |
|
Parametrar: |
| x : | ny x-koordinat. |
| y : | ny y-koordinat. |
|
|
void move(double dx, double dy) |
| Flyttar figurens mittpunkt en given sträcka i samma fönster som
tidigare. |
|
Parametrar: |
| dx : | förflyttning i x-led. |
| dy : | förflyttning i y-led. |
|
|
void rotate(double angle) |
| Roterar figuren ett givet antal grader runt sin mittpunkt. |
|
Parametrar: |
| angle : | antalet grader figuren skall roteras. |
|
|
void rotateTo(double angle) |
| Sätter figurens rotationsvinkel till ett givet antal grader
(från sitt ursprungstillstånd). |
|
Parametrar: |
| angle : | antalet grader figuren skall vara vriden. |
|
|