| Polyline.java |
1 package fi.jyu.mit.graphics;
2
3 import java.awt.Graphics;
4
5 /**
6 * Murtoviiva
7 * @author Vesa Lappalainen
8 *
9 */
10 public class Polyline extends Polygon {
11
12 /**
13 * Luo murtoviivan annetuista kulmapisteiden
14 * x- ja y-koordinaateista
15 * @param xpoints taulukko kulmapisteiden x-koordinaateista
16 * @param ypoints taulukko kulmapisteiden y-koordinaateista
17 */
18 public Polyline(double[] xpoints, double[] ypoints) {
19 super(xpoints, ypoints);
20 }
21
22 /**
23 * Luo murtoviivan joka on diagrammi, annetusta lähtöpisteestä x,
24 * annetulla pistevälillä dx ja annetuilla pisteiden korkeuksilla ypoints[],
25 * esimerkiksi:
26 * <pre>
27 * double[] ypoints = {0, 1, 2, 1, 0};
28 * Polyline p = new Polyline(0, 1, ypoints);
29 *
30 * Luo diagrammin pisteistä (0,0), (1,1), (2,2), (3,1), (4,0)
31 * </pre>
32 * @param x ensimmäisen pisteen x-koordinaatti
33 * @param dx pisteiden väli
34 * @param ypoints taulukko pisteiden y-koordinaateista
35 */
36 public Polyline(double x, double dx, double[] ypoints) {
37 super(x,dx,ypoints);
38 }
39
40 /**
41 * Luo murtoviivan annetuista kulmapisteiden
42 * x-, y- ja z-koordinaateista
43 * @param xpoints taulukko kulmapisteiden x-koordinaateista
44 * @param ypoints taulukko kulmapisteiden y-koordinaateista
45 * @param zpoints taulikko kulmapisteiden z-koordinaateista
46 */
47 public Polyline(double[] xpoints, double[] ypoints, double[] zpoints) {
48 super(xpoints, ypoints, zpoints);
49 }
50
51 /**
52 * Luo kaksi- tai kolmiulotteisen murtoviivan annetuista kulmapisteistä, esimerkiksi:
53 * <pre>
54 * double[][] points = {{2, 6}, {5, 5}, {-1, 2.5}}
55 * Polyline p = new Polyline(points);
56 *
57 * Luo täytetyn monikulmion jonka kärkipisteet ovat (2, 6), (5, 5) ja (-1, 2.5)
58 * </pre>
59 * @param points
60 */
61 public Polyline(double[][] points) {
62 super(points);
63 }
64
65 /**
66 * Luo murtoviivan annetuista kulmapisteistä jotka ovat RPoint olioita
67 * @param points taulukko kulmapisteistä jotka ovat RPoint-olioita
68 */
69 public Polyline(RPoint[] points) {
70 super(points);
71 }
72
73 @Override
74 protected void drawShape(Graphics g, Matrix a) {
75 int[][] sPoints = makeScreenPoints(a);
76 g.drawPolyline(sPoints[0], sPoints[1], getCount());
77 }
78 }
79