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