Ejemplo n.º 1
0
        /// <summary>
        /// Customize this child
        /// </summary>
        public HexagonTess()
        {
            InitializeComponent();

            double xSmallSegment = 10d;
            double xLargeSegment = 20d;
            double ySegment = Math.Cos(Math.PI / 6) * 20d;
            double height = ySegment * 2;
            double width = 40d;

            addStartZone(new Point((int)xSmallSegment, 0), new Point((int)(xSmallSegment + xLargeSegment), 0));
            setShapeHeight(height);

            Pattern pat = new Pattern(60d, height, 0d);
            List<DoublePoint> shape1 = new List<DoublePoint>();
            List<DoublePoint> shape2 = new List<DoublePoint>();

            shape1.Add(new DoublePoint(xSmallSegment + xLargeSegment, 0));
            shape1.Add(new DoublePoint(xSmallSegment, 0));
            shape1.Add(new DoublePoint(0, ySegment));
            shape1.Add(new DoublePoint(xSmallSegment, height));
            shape1.Add(new DoublePoint(xSmallSegment + xLargeSegment, height));
            shape1.Add(new DoublePoint(width, ySegment));

            shape2.Add(new DoublePoint(xLargeSegment + xLargeSegment + xSmallSegment + xSmallSegment, ySegment));
            shape2.Add(new DoublePoint(xLargeSegment + xSmallSegment + xSmallSegment, ySegment));
            shape2.Add(new DoublePoint(xLargeSegment + xSmallSegment + 0, ySegment + ySegment));
            shape2.Add(new DoublePoint(xLargeSegment + xSmallSegment + xSmallSegment, ySegment + height));
            shape2.Add(new DoublePoint(xLargeSegment + xSmallSegment + xSmallSegment + xLargeSegment, ySegment + height));
            shape2.Add(new DoublePoint(xLargeSegment + xSmallSegment + width, ySegment + ySegment));

            pat.addPattern(shape1);
            pat.addPattern(shape2);
            setPattern(pat);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Customize this child
        /// </summary>
        public IsosTri90Tess()
        {
            InitializeComponent();
            double size = 40d;
            double temp = Math.Tan(Math.PI / 4d) * (size / 2);
            Pattern pat = new Pattern(size, temp * 2d, 0);
            List<DoublePoint> tri1 = new List<DoublePoint>();
            List<DoublePoint> tri2 = new List<DoublePoint>();
            List<DoublePoint> tri3 = new List<DoublePoint>();
            List<DoublePoint> tri4 = new List<DoublePoint>();
            addStartZone(new Point(0, 0), new Point((int)size, 0));
            setShapeHeight(temp);

            tri1.Add(new DoublePoint(0, 0));
            tri1.Add(new DoublePoint(size / 2, temp));
            tri1.Add(new DoublePoint(0, temp*2));

            tri2.Add(new DoublePoint(0, 0));
            tri2.Add(new DoublePoint(size, 0));
            tri2.Add(new DoublePoint(size / 2, temp));

            tri3.Add(new DoublePoint(size, temp * 2));
            tri3.Add(new DoublePoint(0, temp * 2));
            tri3.Add(new DoublePoint(size / 2, temp));

            tri4.Add(new DoublePoint(size, temp * 2));
            tri4.Add(new DoublePoint(size, 0));
            tri4.Add(new DoublePoint(size / 2, temp));

            pat.addPattern(tri1);
            pat.addPattern(tri2);
            pat.addPattern(tri3);
            pat.addPattern(tri4);
            setPattern(pat);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Customize this child
        /// </summary>
        public RectTess(double ratio)
        {
            InitializeComponent();

            double patBase = 30;
            // ratioOver1 is used to scale down the rectangle
            double ratioOver1 = ratio - 1;
            if (ratioOver1 > 0)
            {
                // If the ratioOver1 is over 1, the scale down will be much to small, so we will make 1 the max.
                if (ratioOver1 > 1d)
                    ratioOver1 = 1d;
                patBase /= ratioOver1 + 1;
            }
            double heightRatio = ratio;
            double patHeight = patBase * heightRatio;
            double patWidth = patBase;
            addStartZone(new Point(0, 0), new Point((int)patWidth, 0));
            setShapeHeight(patHeight);

            Pattern pat = new Pattern(patWidth, patHeight, 0d);
            List<DoublePoint> tri1 = new List<DoublePoint>();

            tri1.Add(new DoublePoint(0, 0));
            tri1.Add(new DoublePoint(0, patHeight));
            tri1.Add(new DoublePoint(patWidth, patHeight));
            tri1.Add(new DoublePoint(patWidth, 0));

            pat.addPattern(tri1);
            setPattern(pat);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Customize this child
        /// </summary>
        public EquilateralTess()
        {
            InitializeComponent();
            double temp = Math.Tan(Math.PI / 3d) * 20d;
            Pattern pat = new Pattern(40, temp, 20);
            List<DoublePoint> tri1 = new List<DoublePoint>();
            List<DoublePoint> tri2 = new List<DoublePoint>();
            addStartZone(new Point(0, 0), new Point(40, 0));
            setShapeHeight(temp);

            tri1.Add(new DoublePoint(0, 0));
            tri1.Add(new DoublePoint(20, temp));
            tri1.Add(new DoublePoint(40, 0));

            tri2.Add(new DoublePoint(40, 0));
            tri2.Add(new DoublePoint(20, temp));
            tri2.Add(new DoublePoint(60, temp));

            pat.addPattern(tri1);
            pat.addPattern(tri2);
            setPattern(pat);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Customize this child
        /// </summary>
        public KiteTess()
        {
            InitializeComponent();
            double heightOnSide = Math.Sin(Math.PI / 3d) * 30d;
            double segmentHeight = Math.Tan(Math.PI / 6d) * 30d;
            double triH = Math.Sin(Math.PI / 6d) * 30d;
            double height = Math.Sqrt(900 + (segmentHeight*segmentHeight));
            double totalHeight = height + segmentHeight;
            double xFromCenter = Math.Cos(Math.PI / 3d) * 30d;
            Pattern pat = new Pattern(60, totalHeight, 30);
            List<DoublePoint> tri1 = new List<DoublePoint>();
            List<DoublePoint> tri2 = new List<DoublePoint>();
            List<DoublePoint> tri3 = new List<DoublePoint>();
            List<DoublePoint> tri4 = new List<DoublePoint>();
            List<DoublePoint> tri5 = new List<DoublePoint>();
            List<DoublePoint> tri6 = new List<DoublePoint>();
            addStartZone(new Point(30, 0), new Point(60, 0));
            addReflectedStartZone(new Point(0, 0), new Point(30, 0));
            setShapeHeight(heightOnSide);

            tri1.Add(new DoublePoint(30 - xFromCenter, heightOnSide));
            tri1.Add(new DoublePoint(0, segmentHeight));
            tri1.Add(new DoublePoint(0, 0));
            tri1.Add(new DoublePoint(30, 0));

            tri2.Add(new DoublePoint(30 - xFromCenter, heightOnSide));
            tri2.Add(new DoublePoint(30, height));
            tri2.Add(new DoublePoint(30 + triH, heightOnSide));
            tri2.Add(new DoublePoint(30, 0));

            tri3.Add(new DoublePoint(60, 0));
            tri3.Add(new DoublePoint(60, segmentHeight));
            tri3.Add(new DoublePoint(30 + triH, heightOnSide));
            tri3.Add(new DoublePoint(30, 0));

            tri4.Add(new DoublePoint(60 - xFromCenter, totalHeight - heightOnSide));
            tri4.Add(new DoublePoint(30, totalHeight - segmentHeight));
            tri4.Add(new DoublePoint(30, totalHeight));
            tri4.Add(new DoublePoint(60, totalHeight));

            tri5.Add(new DoublePoint(60 - xFromCenter, totalHeight - heightOnSide));
            tri5.Add(new DoublePoint(60, totalHeight - height));
            tri5.Add(new DoublePoint(60 + triH, totalHeight - heightOnSide));
            tri5.Add(new DoublePoint(60, totalHeight));

            tri6.Add(new DoublePoint(90, totalHeight));
            tri6.Add(new DoublePoint(90, totalHeight - segmentHeight));
            tri6.Add(new DoublePoint(60 + triH, totalHeight - heightOnSide));
            tri6.Add(new DoublePoint(60, totalHeight));

            pat.addPattern(tri1);
            pat.addPattern(tri2);
            pat.addPattern(tri3);
            pat.addPattern(tri4);
            pat.addPattern(tri5);
            pat.addPattern(tri6);
            setPattern(pat);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Customize this child
        /// </summary>
        public RhombusTess()
        {
            InitializeComponent();

            double smallSegment = Math.Cos(Math.PI / 3d) * 30d;
            double height = Math.Sin(Math.PI / 3d) * 30d;
            double lengthLong = Math.Cos(Math.PI / 6d) * 60d;
            double lengthShort = Math.Sin(Math.PI / 6d) * 60d;
            addStartZone(new Point((int)smallSegment + 30, 0), new Point((int)smallSegment + 60, 0));
            addReflectedStartZone(new Point((int)smallSegment, 0), new Point((int)smallSegment + 30, 0));
            setShapeHeight(height);

            Pattern pat = new Pattern(60d + lengthShort, lengthLong, 0d);
            List<DoublePoint> shape1 = new List<DoublePoint>();
            List<DoublePoint> shape2 = new List<DoublePoint>();
            List<DoublePoint> shape3 = new List<DoublePoint>();
            List<DoublePoint> shape4 = new List<DoublePoint>();
            List<DoublePoint> shape5 = new List<DoublePoint>();
            List<DoublePoint> shape6 = new List<DoublePoint>();

            shape1.Add(new DoublePoint(smallSegment, 0));
            shape1.Add(new DoublePoint(0, height));
            shape1.Add(new DoublePoint(30, height));
            shape1.Add(new DoublePoint(30 + smallSegment, 0));

            shape2.Add(new DoublePoint(0, height));
            shape2.Add(new DoublePoint(smallSegment, lengthLong));
            shape2.Add(new DoublePoint(30 + smallSegment, lengthLong));
            shape2.Add(new DoublePoint(30, height));

            shape3.Add(new DoublePoint(30 + smallSegment, 0));
            shape3.Add(new DoublePoint(30, height));
            shape3.Add(new DoublePoint(30 + smallSegment, lengthLong));
            shape3.Add(new DoublePoint(30 + lengthShort, height));

            shape4.Add(new DoublePoint(30 + smallSegment, 0));
            shape4.Add(new DoublePoint(30 + lengthShort, height));
            shape4.Add(new DoublePoint(60 + lengthShort, height));
            shape4.Add(new DoublePoint(60 + smallSegment, 0));

            shape5.Add(new DoublePoint(30 + lengthShort, height));
            shape5.Add(new DoublePoint(30 + smallSegment, lengthLong));
            shape5.Add(new DoublePoint(60 + smallSegment, lengthLong));
            shape5.Add(new DoublePoint(60 + lengthShort, height));

            shape6.Add(new DoublePoint(60 + lengthShort, height));
            shape6.Add(new DoublePoint(60 + smallSegment, lengthLong));
            shape6.Add(new DoublePoint(60 + lengthShort, lengthLong * 1.5));
            shape6.Add(new DoublePoint(60 + smallSegment + lengthShort, lengthLong));

            pat.addPattern(shape1);
            pat.addPattern(shape2);
            pat.addPattern(shape3);
            pat.addPattern(shape4);
            pat.addPattern(shape5);
            pat.addPattern(shape6);
            setPattern(pat);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Customize this child
        /// </summary>
        public IsosTri120Tess()
        {
            InitializeComponent();
            double size = 50d;
            double temp = Math.Tan(Math.PI / 6d) * (size/2);
            double height = temp * 3d;
            Pattern pat = new Pattern(size, height, size/2);
            List<DoublePoint> tri1 = new List<DoublePoint>();
            List<DoublePoint> tri2 = new List<DoublePoint>();
            List<DoublePoint> tri3 = new List<DoublePoint>();
            List<DoublePoint> tri4 = new List<DoublePoint>();
            List<DoublePoint> tri5 = new List<DoublePoint>();
            List<DoublePoint> tri6 = new List<DoublePoint>();
            addStartZone(new Point(0, 0), new Point((int)size, 0));
            setShapeHeight(temp);

            tri1.Add(new DoublePoint(0, 0));
            tri1.Add(new DoublePoint(size / 2, height));
            tri1.Add(new DoublePoint(size / 2, temp));

            tri2.Add(new DoublePoint(0, 0));
            tri2.Add(new DoublePoint(size, 0));
            tri2.Add(new DoublePoint(size / 2, temp));

            tri3.Add(new DoublePoint(size / 2, height));
            tri3.Add(new DoublePoint(size, 0));
            tri3.Add(new DoublePoint(size / 2, temp));

            tri4.Add(new DoublePoint(size / 2, height));
            tri4.Add(new DoublePoint(size, 0));
            tri4.Add(new DoublePoint(size, height - temp));

            tri5.Add(new DoublePoint(size / 2, height));
            tri5.Add(new DoublePoint(size + (size / 2), height));
            tri5.Add(new DoublePoint(size, height - temp));

            tri6.Add(new DoublePoint(size + (size / 2), height));
            tri6.Add(new DoublePoint(size, 0));
            tri6.Add(new DoublePoint(size, height - temp));

            pat.addPattern(tri1);
            pat.addPattern(tri2);
            pat.addPattern(tri3);
            pat.addPattern(tri4);
            pat.addPattern(tri5);
            pat.addPattern(tri6);
            setPattern(pat);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Customize the child
        /// </summary>
        public Tri3060Tess()
        {
            InitializeComponent();
            int baseScale = 30;
            double heightOnSide = Math.Sin(Math.PI / 3d) * baseScale;
            double segmentHeight = Math.Tan(Math.PI / 6d) * baseScale;
            double triH = Math.Sin(Math.PI / 6d) * baseScale;
            double height = Math.Sqrt(900 + (segmentHeight * segmentHeight));
            double totalHeight = height + segmentHeight;
            Pattern pat = new Pattern(baseScale*2, totalHeight, baseScale);
            List<DoublePoint> tri1 = new List<DoublePoint>();
            List<DoublePoint> tri2 = new List<DoublePoint>();
            List<DoublePoint> tri3 = new List<DoublePoint>();
            List<DoublePoint> tri4 = new List<DoublePoint>();
            List<DoublePoint> tri5 = new List<DoublePoint>();
            List<DoublePoint> tri6 = new List<DoublePoint>();
            List<DoublePoint> tri7 = new List<DoublePoint>();
            List<DoublePoint> tri8 = new List<DoublePoint>();
            List<DoublePoint> tri9 = new List<DoublePoint>();
            List<DoublePoint> tri10 = new List<DoublePoint>();
            List<DoublePoint> tri11 = new List<DoublePoint>();
            List<DoublePoint> tri12 = new List<DoublePoint>();
            addStartZone(new Point(baseScale, 0), new Point(baseScale * 2, 0));
            addReflectedStartZone(new Point(0, 0), new Point(baseScale, 0));
            setShapeHeight(heightOnSide);

            tri1.Add(new DoublePoint(baseScale, 0));
            tri1.Add(new DoublePoint(0, 0));
            tri1.Add(new DoublePoint(0, segmentHeight));

            tri2.Add(new DoublePoint(baseScale, 0));
            tri2.Add(new DoublePoint(0, segmentHeight));
            tri2.Add(new DoublePoint(baseScale - triH, heightOnSide));

            tri3.Add(new DoublePoint(baseScale, 0));
            tri3.Add(new DoublePoint(baseScale, height));
            tri3.Add(new DoublePoint(baseScale - triH, heightOnSide));

            tri4.Add(new DoublePoint(baseScale, 0));
            tri4.Add(new DoublePoint(baseScale, height));
            tri4.Add(new DoublePoint(baseScale + triH, heightOnSide));

            tri5.Add(new DoublePoint(baseScale, 0));
            tri5.Add(new DoublePoint(baseScale + triH, heightOnSide));
            tri5.Add(new DoublePoint(baseScale*2, segmentHeight));

            tri6.Add(new DoublePoint(baseScale, 0));
            tri6.Add(new DoublePoint(baseScale * 2,  0));
            tri6.Add(new DoublePoint(baseScale * 2, segmentHeight));

            tri7.Add(new DoublePoint(baseScale + baseScale, totalHeight));
            tri7.Add(new DoublePoint(baseScale, totalHeight));
            tri7.Add(new DoublePoint(baseScale, totalHeight - segmentHeight));

            tri8.Add(new DoublePoint(baseScale + baseScale, totalHeight));
            tri8.Add(new DoublePoint(baseScale, totalHeight - segmentHeight));
            tri8.Add(new DoublePoint(baseScale + baseScale - triH, totalHeight - heightOnSide));

            tri9.Add(new DoublePoint(baseScale + baseScale, totalHeight));
            tri9.Add(new DoublePoint(baseScale + baseScale, totalHeight - height));
            tri9.Add(new DoublePoint(baseScale + baseScale - triH, totalHeight - heightOnSide));

            tri10.Add(new DoublePoint(baseScale + baseScale, totalHeight));
            tri10.Add(new DoublePoint(baseScale + baseScale, totalHeight - height));
            tri10.Add(new DoublePoint(baseScale + baseScale + triH, totalHeight - heightOnSide));

            tri11.Add(new DoublePoint(baseScale + baseScale, totalHeight));
            tri11.Add(new DoublePoint(baseScale + baseScale + triH, totalHeight - heightOnSide));
            tri11.Add(new DoublePoint(baseScale + baseScale * 2, totalHeight - segmentHeight));

            tri12.Add(new DoublePoint(baseScale + baseScale, totalHeight));
            tri12.Add(new DoublePoint(baseScale + baseScale * 2, totalHeight));
            tri12.Add(new DoublePoint(baseScale + baseScale * 2, totalHeight - segmentHeight));

            pat.addPattern(tri1);
            pat.addPattern(tri2);
            pat.addPattern(tri3);
            pat.addPattern(tri4);
            pat.addPattern(tri5);
            pat.addPattern(tri6);
            pat.addPattern(tri7);
            pat.addPattern(tri8);
            pat.addPattern(tri9);
            pat.addPattern(tri10);
            pat.addPattern(tri11);
            pat.addPattern(tri12);
            setPattern(pat);
        }