mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/util/Hexagon.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2003, The Institute for Genomic Research (TIGR).
2 26 Feb 07 jari 3 All rights reserved.
2 26 Feb 07 jari 4 */
2 26 Feb 07 jari 5 /*
2 26 Feb 07 jari 6  * $RCSfile: Hexagon.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.3 $
2 26 Feb 07 jari 8  * $Date: 2005/03/10 20:36:56 $
2 26 Feb 07 jari 9  * $Author: braistedj $
2 26 Feb 07 jari 10  * $State: Exp $
2 26 Feb 07 jari 11  */
2 26 Feb 07 jari 12 package org.tigr.microarray.mev.cluster.gui.impl.util;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import java.awt.Polygon;
2 26 Feb 07 jari 15
2 26 Feb 07 jari 16 public class Hexagon extends Polygon {
2 26 Feb 07 jari 17     
2 26 Feb 07 jari 18     private int width;
2 26 Feb 07 jari 19     private int angle;
2 26 Feb 07 jari 20     private double c;
2 26 Feb 07 jari 21     private double a;
2 26 Feb 07 jari 22     private double b;
2 26 Feb 07 jari 23     
2 26 Feb 07 jari 24     public Hexagon(int width, int angle) {
2 26 Feb 07 jari 25   this.width = width;
2 26 Feb 07 jari 26   this.angle = angle;
2 26 Feb 07 jari 27   a = width/2.0;
2 26 Feb 07 jari 28   b = Math.tan(Math.PI/6.0)*a;
2 26 Feb 07 jari 29   c = a/(Math.cos(Math.PI/6.0));
2 26 Feb 07 jari 30   addPoint(0, 0);
2 26 Feb 07 jari 31   if (angle==0 || angle==180) {
2 26 Feb 07 jari 32       addPoint((int)Math.round(b),-(int)Math.round(a));
2 26 Feb 07 jari 33       addPoint((int)Math.round(b)+(int)Math.round(c),-(int)Math.round(a));
2 26 Feb 07 jari 34       addPoint((int)Math.round(b)*2+(int)Math.round(c),0);
2 26 Feb 07 jari 35       addPoint((int)Math.round(b)+(int)Math.round(c),+(int)Math.round(a));
2 26 Feb 07 jari 36       addPoint((int)Math.round(b),+(int)Math.round(a));
2 26 Feb 07 jari 37   } else {
2 26 Feb 07 jari 38       addPoint(-(int)Math.round(a),-(int)Math.round(b));
2 26 Feb 07 jari 39       addPoint(-(int)Math.round(a),-(int)Math.round(b)-(int)Math.round(c));
2 26 Feb 07 jari 40       addPoint(0,-(int)Math.round(b)*2-(int)Math.round(c));
2 26 Feb 07 jari 41       addPoint((int)Math.round(a),-(int)Math.round(b)-(int)Math.round(c));
2 26 Feb 07 jari 42       addPoint((int)Math.round(a),-(int)Math.round(b));
2 26 Feb 07 jari 43   }
2 26 Feb 07 jari 44   if (angle==180) translate(-(int)Math.round(b)*2-(int)Math.round(c),0);
2 26 Feb 07 jari 45   if (angle==270) translate(0,(int)Math.round(b)*2+(int)Math.round(c));
2 26 Feb 07 jari 46     }
2 26 Feb 07 jari 47     
2 26 Feb 07 jari 48     public int getA() {
2 26 Feb 07 jari 49   return(int)Math.round(a);
2 26 Feb 07 jari 50     }
2 26 Feb 07 jari 51     
2 26 Feb 07 jari 52     public int getB() {
2 26 Feb 07 jari 53   return(int)Math.round(b);
2 26 Feb 07 jari 54     }
2 26 Feb 07 jari 55     
2 26 Feb 07 jari 56     public int getC() {
2 26 Feb 07 jari 57   return(int)Math.round(c);
2 26 Feb 07 jari 58     }
2 26 Feb 07 jari 59     
2 26 Feb 07 jari 60     public int getHeight() {
2 26 Feb 07 jari 61   if (angle==90 || angle==270) {
2 26 Feb 07 jari 62       return((int)Math.round(b)*2+(int)Math.round(c));
2 26 Feb 07 jari 63   } else {
2 26 Feb 07 jari 64       return width;
2 26 Feb 07 jari 65   }
2 26 Feb 07 jari 66     }
2 26 Feb 07 jari 67     
2 26 Feb 07 jari 68     public int getWidth() {
2 26 Feb 07 jari 69   if (angle==0 || angle==180) {
2 26 Feb 07 jari 70       return((int)Math.round(b)*2+(int)Math.round(c));
2 26 Feb 07 jari 71   } else {
2 26 Feb 07 jari 72       return width;
2 26 Feb 07 jari 73   }
2 26 Feb 07 jari 74     }
2 26 Feb 07 jari 75     
2 26 Feb 07 jari 76 }