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); }
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); }
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); }
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; }