Пример #1
0
		public Point3DCollection FillMesh(int xVertices, int yVertices, double aspect)
		{
			LineEvaluator hLine = new LineEvaluator();
			hLine.Point1 = new Point3D(-aspect/2, 0, 0);
			hLine.Point2 = new Point3D(aspect/2, 0, 0);

			LineEvaluator vLine = new LineEvaluator();
			vLine.Point1 = new Point3D(0, 0.5, 0);
			vLine.Point2 = new Point3D(0, -0.5, 0);

			Point3DCollection positions = new Point3DCollection();
			for (int y = 0; y < yVertices; y++)
			{
				double vT = (double) y/(yVertices - 1);

				Point3D vPoint = vLine.Evaluate(vT);
				for (int x = 0; x < xVertices; x++)
				{
					double hT = (double) x/(xVertices - 1);
					Point3D hPoint = hLine.Evaluate(hT);

					positions.Add(new Point3D(hPoint.X, vPoint.Y, 0));
				}
			}
			return positions;
		}
        public Point3DCollection FillMesh(int xVertices, int yVertices, double aspect)
        {
            LineEvaluator hLine = new LineEvaluator();

            hLine.Point1 = new Point3D(-aspect / 2, 0, 0);
            hLine.Point2 = new Point3D(aspect / 2, 0, 0);

            LineEvaluator vLine = new LineEvaluator();

            vLine.Point1 = new Point3D(0, 0.5, 0);
            vLine.Point2 = new Point3D(0, -0.5, 0);

            Point3DCollection positions = new Point3DCollection();

            for (int y = 0; y < yVertices; y++)
            {
                double vT = (double)y / (yVertices - 1);

                Point3D vPoint = vLine.Evaluate(vT);
                for (int x = 0; x < xVertices; x++)
                {
                    double  hT     = (double)x / (xVertices - 1);
                    Point3D hPoint = hLine.Evaluate(hT);

                    positions.Add(new Point3D(hPoint.X, vPoint.Y, 0));
                }
            }
            return(positions);
        }
Пример #3
0
        public Point3DCollection FillMesh(int xVertices, int yVertices, double startT)
        {
            BezierEvaluator lBezier = new BezierEvaluator();

            lBezier.Point1 = LeftPoint1;
            lBezier.Point2 = LeftPoint2;
            lBezier.Point3 = LeftPoint3;
            lBezier.Point4 = LeftPoint4;

            BezierEvaluator rBezier = new BezierEvaluator();

            rBezier.Point1 = RightPoint1;
            rBezier.Point2 = RightPoint2;
            rBezier.Point3 = RightPoint3;
            rBezier.Point4 = RightPoint4;

            LineEvaluator line = new LineEvaluator();

            double            t         = startT;
            double            deltaT    = (1.0D - startT) / (yVertices - 1);
            Point3DCollection positions = new Point3DCollection();

            for (int y = 0; y < yVertices; y++)
            {
                Point3D leftBezier  = lBezier.Evaluate(t);
                Point3D rightBezier = rBezier.Evaluate(t);
                for (int x = 0; x < xVertices; x++)
                {
                    double lineT = (double)x / (xVertices - 1);
                    line.Point1 = leftBezier;
                    line.Point2 = rightBezier;
                    Point3D linePos = line.Evaluate(lineT);

                    if (x == 0)
                    {
                        positions.Add(leftBezier);
                    }
                    else if (x == xVertices - 1)
                    {
                        positions.Add(rightBezier);
                    }
                    else
                    {
                        positions.Add(linePos);
                    }
                }

                t += deltaT;
            }
            return(positions);
        }
Пример #4
0
        private Point3D EvaluateSpreadPosition(double x1, double y1, Point3D point, double spreadT)
        {
            double x2 = point.X;
            double y2 = point.Y;

            LineEvaluator line = new LineEvaluator();
            line.Point1 = MapToMesh(x1, y1);
            line.Point2 = MapToMesh(x2, y2);
            return line.Evaluate(spreadT);
        }
Пример #5
0
		public Point3DCollection FillMesh(int xVertices, int yVertices, double startT)
		{
			BezierEvaluator lBezier = new BezierEvaluator();
			lBezier.Point1 = LeftPoint1;
			lBezier.Point2 = LeftPoint2;
			lBezier.Point3 = LeftPoint3;
			lBezier.Point4 = LeftPoint4;

			BezierEvaluator rBezier = new BezierEvaluator();
			rBezier.Point1 = RightPoint1;
			rBezier.Point2 = RightPoint2;
			rBezier.Point3 = RightPoint3;
			rBezier.Point4 = RightPoint4;

			LineEvaluator line = new LineEvaluator();

			double t = startT;
			double deltaT = (1.0D - startT)/(yVertices - 1);
			Point3DCollection positions = new Point3DCollection();
			for (int y = 0; y < yVertices; y++)
			{
				Point3D leftBezier = lBezier.Evaluate(t);
				Point3D rightBezier = rBezier.Evaluate(t);
				for (int x = 0; x < xVertices; x++)
				{
					double lineT = (double) x/(xVertices - 1);
					line.Point1 = leftBezier;
					line.Point2 = rightBezier;
					Point3D linePos = line.Evaluate(lineT);

					if (x == 0)
					{
						positions.Add(leftBezier);
					}
					else if (x == xVertices - 1)
					{
						positions.Add(rightBezier);
					}
					else
					{
						positions.Add(linePos);
					}
				}

				t += deltaT;
			}
			return positions;
		}