private void boxPlotterRendered(Shapes.BoundingBox box, double rot_x, double rot_y, double rot_z, double width, double height, double length, p3D.Point3D center) { string[] seriesNames = boxSeriesNames(box); Point3D[] polarity = boxCornerPolarities(); double inc = 300; double[] dimensions = { width, height, length }; int[] sides = { 5, 0, 4 }; Point3D dir0 = new Point3D(1, 0, 0); Point3D dir1 = new Point3D(0, 1, 0); Point3D dir2 = new Point3D(0, 0, 1); Point3D[] incDirection = { dir0, dir1, dir2 }; for (int i = 0; i < 3; i++) { int[] sidePoints = boxSidePoints(sides[i]); for (double j = 0; j < dimensions[i]; j = j + dimensions[i] / inc) { for (int k = 0; k < 5; k++) { Convert3DTo2D(rot_x, rot_y, rot_z, width / 2 * polarity[sidePoints[k]].X + center.X + j * incDirection[i].X, height / 2 * polarity[sidePoints[k]].Y + center.Y + j * incDirection[i].Y, length / 2 * polarity[sidePoints[k]].Z + center.Z + j * incDirection[i].Z, ref x, ref y, ref z); chart.Series[seriesNames[sides[i]]].Points.AddXY(x, y); } } } }
public void deleteShape(Shapes.BoundingBox box) { string[] seriesNames = boxSeriesNames(box); foreach (string name in seriesNames) { Series series = chart.Series[name]; chart.Series.Remove(series); } }
public void plotSetup(Shapes.BoundingBox box, System.Drawing.Color color) { string[] seriesNames = boxSeriesNames(box); foreach (string name in seriesNames) { chart.Series.Add(name); chart.Series[name].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; chart.Series[name].Color = color; } }
private string[] boxSeriesNames(Shapes.BoundingBox box) { string Face0 = String.Format("boxFace0_{0}", box.Name); string Face1 = String.Format("boxFace1_{0}", box.Name); string Face2 = String.Format("boxFace2_{0}", box.Name); string Face3 = String.Format("boxFace3_{0}", box.Name); string Face4 = String.Format("boxFace4_{0}", box.Name); string Face5 = String.Format("boxFace5_{0}", box.Name); string[] series = { Face0, Face1, Face2, Face3, Face4, Face5 }; return(series); }
public void Plot(Shapes.BoundingBox box, p3D.Point3D center, double rot_x, double rot_y, double rot_z, bool rendered) { string[] seriesNames = boxSeriesNames(box); foreach (string name in seriesNames) { chart.Series[name].Points.Clear(); } if (rendered) { boxPlotterRendered(box, rot_x, rot_y, rot_z, box.Width, box.Height, box.Length, center); } else { boxPlotterWire(box, rot_x, rot_y, rot_z, box.Width, box.Height, box.Length, center); } chartSizer(chart); }
private void boxPlotterWire(Shapes.BoundingBox box, double rot_x, double rot_y, double rot_z, double width, double height, double length, p3D.Point3D center) { string[] seriesNames = boxSeriesNames(box); Point3D[] polarity = boxCornerPolarities(); List <DataPoint> points = new List <DataPoint>(); for (int i = 0; i < 8; i++) { Convert3DTo2D(rot_x, rot_y, rot_z, width / 2 * polarity[i].X + center.X, height / 2 * polarity[i].Y + center.Y, length / 2 * polarity[i].Z + center.Z, ref x, ref y, ref z); DataPoint point = new DataPoint(x, y); points.Add(point); } for (int i = 0; i < 6; i++) { int[] point = boxSidePoints(i); for (int j = 0; j < 5; j++) { chart.Series[seriesNames[i]].Points.Add(points[point[j]]); } } }