예제 #1
0
        public static TriangleISO Triangle3DToISO(Triangle3D t)
        {
            Point p1, p2, p3;
            p1 = Vector3D.Vector3DToISO(t.getV1());
            p2 = Vector3D.Vector3DToISO(t.getV2());
            p3 = Vector3D.Vector3DToISO(t.getV3());

            return new TriangleISO(p1, p2, p3, t.getColor());
        }
예제 #2
0
        public Board3D(Vector3D basePoint, int size)
            : base(basePoint)
        {
            if (!(size == 8 || size == 10)) throw new ArgumentException();
            this.size = size;

            for (int i = 0; i < size; i++) {
                for (int j = 0; j < size; j++) {
                    Color color = (i + j) % 2 == 0 ? COLOR_WHITE: COLOR_BLACK;

                    Triangle3D[] rect = this.getRect(i * RECTSIZE, j * RECTSIZE, color);

                    this.addTriangle(rect[0]);
                    this.addTriangle(rect[1]);
                }
            }

            Vector3D v01 = new Vector3D(0, 0, 0);
            Vector3D v02 = new Vector3D(RECTSIZE * size, 0, 0);
            Vector3D v03 = new Vector3D(0, RECTSIZE * size, 0);
            Vector3D v04 = new Vector3D(RECTSIZE * size, RECTSIZE * size, 0);

            Vector3D v05 = v01 + new Vector3D(-EDGEWIDTH, -EDGEWIDTH, 0);
            Vector3D v06 = v02 + new Vector3D(EDGEWIDTH, -EDGEWIDTH, 0);
            Vector3D v07 = v03 + new Vector3D(-EDGEWIDTH, EDGEWIDTH, 0);
            Vector3D v08 = v04 + new Vector3D(EDGEWIDTH, EDGEWIDTH, 0);

            Vector3D v09 = v01 + new Vector3D(-EDGEWIDTH, 0, 0);
            Vector3D v10 = v02 + new Vector3D(0, -EDGEWIDTH, 0);
            Vector3D v11 = v03 + new Vector3D(0, EDGEWIDTH, 0);
            Vector3D v12 = v04 + new Vector3D(EDGEWIDTH, 0, 0);

            Triangle3D t1 = new Triangle3D(v05, v09, v02, EDGE_COLOR);
            Triangle3D t2 = new Triangle3D(v05, v02, v10, EDGE_COLOR);

            Triangle3D t3 = new Triangle3D(v10, v06, v04, EDGE_COLOR);
            Triangle3D t4 = new Triangle3D(v12, v06, v04, EDGE_COLOR);

            Triangle3D t5 = new Triangle3D(v12, v03, v08, EDGE_COLOR);
            Triangle3D t6 = new Triangle3D(v07, v03, v08, EDGE_COLOR);

            Triangle3D t7 = new Triangle3D(v11, v07, v09, EDGE_COLOR);
            Triangle3D t8 = new Triangle3D(v11, v01, v09, EDGE_COLOR);

            this.addTriangle(t1);
            this.addTriangle(t2);
            this.addTriangle(t3);
            this.addTriangle(t4);
            this.addTriangle(t5);
            this.addTriangle(t6);
            this.addTriangle(t7);
            this.addTriangle(t8);
        }
예제 #3
0
        public Diamond3D(Vector3D basePoint)
            : base(basePoint)
        {
            Vector3D v1 = new Vector3D(5, 5, 0);
            Vector3D v2 = new Vector3D(-5, 5, 0);
            Vector3D v3 = new Vector3D(5, -5, 0);
            Vector3D v4 = new Vector3D(-5, -5, 0);

            Vector3D v5 = new Vector3D(0, 0, 8);
            Vector3D v6 = new Vector3D(0, 0, -8);

            Triangle3D t1 = new Triangle3D(v5, v1, v2, Color.Green);
            Triangle3D t2 = new Triangle3D(v6, v1, v2, Color.Green);

            Triangle3D t3 = new Triangle3D(v5, v1, v3, Color.DarkGreen);
            Triangle3D t4 = new Triangle3D(v6, v1, v3, Color.DarkGreen);

            this.addTriangle(t1);
            this.addTriangle(t2);
            this.addTriangle(t3);
            this.addTriangle(t4);
        }
예제 #4
0
        private Triangle3D[] getRect(int x, int y, Color color)
        {
            Triangle3D[] ret = new Triangle3D[2];

            Vector3D v1 = new Vector3D(x, y, 0);
            Vector3D v2 = new Vector3D(x + RECTSIZE, y, 0);
            Vector3D v3 = new Vector3D(x, y + RECTSIZE, 0);
            Vector3D v4 = new Vector3D(x + RECTSIZE, y + RECTSIZE, 0);

            ret[0] = new Triangle3D(v1, v2, v3, color);
            ret[1] = new Triangle3D(v4, v2, v3, color);

            return ret;
        }
예제 #5
0
 protected void addTriangle(Triangle3D t)
 {
     triangleList.Add(t);
 }