private Line drawLine(Point3D start, Point3D end) { Line line = new Line(); DrawCube projector = new DrawCube(); Point3D projectedStartPoint = projector.AnimateStar(start.X, start.Y, start.Z, rx, ry, -rz, elevation,azimuth); Point3D projectedEndPoint = projector.AnimateStar(end.X, end.Y, end.Z, rx, ry, -rz, elevation, azimuth); line.X1 = ProjectionViewCanvas.Width/2 - projectedStartPoint.X; line.X2 = ProjectionViewCanvas.Width / 2 - projectedEndPoint.X ; line.Y1 = ProjectionViewCanvas.Height / 2 - projectedStartPoint.Y; line.Y2 = ProjectionViewCanvas.Height / 2 - projectedEndPoint.Y ; return line; }
private void Drawplane() { DrawCube projector = new DrawCube(); Point3D projectionPoint = new Point3D(); Polygon plane = new Polygon(); PointCollection pointCollection = new PointCollection(); double distance = 480; for (int degreeStep = 0; degreeStep < 180; degreeStep+=2) { double degree = -degreeStep * (2*Math.PI/180); projectionPoint = projector.AnimateStar(distance* Math.Sin(degree), distance* Math.Cos(degree), 0 ,rx, ry, -rz,elevation, azimuth); pointCollection.Add(new Point(ProjectionViewCanvas.Width / 2 - projectionPoint.X, ProjectionViewCanvas.Height / 2 - projectionPoint.Y)); } plane.Points = pointCollection; plane.Stroke = new SolidColorBrush(Color.FromArgb(0xF0, 0x3D, 0x95, 0xDE)); plane.StrokeThickness = 3; ProjectionViewCanvas.Children.Add(plane); }
private Point Calc3D() { double x = X-moveX; double y = Y-moveY; double z = Z-moveZ; double rx = rotaX; double ry = rotaY; double rz = rotaZ; double e = -elevation; double a = azimuth; Point3D ProjectedPoint = new Point3D(); DrawCube Projector = new DrawCube(); ProjectedPoint = Projector.AnimateStar(x, y, z, rx, ry, rz, e, a); projectorZ = ProjectedPoint.Z; renderDepth = projectorZ/centerX; return new Point(ProjectedPoint.X,ProjectedPoint.Y); }