private void DrawZAxisLabels() { Transform3D transform = new RotateTransform3D() { Rotation = new AxisAngleRotation3D() { Axis = new Vector3D(0, 0, 1), Angle = 90 } }; var transformGroup = new Transform3DGroup(); transformGroup.Children.Add(transform); transform = new TranslateTransform3D() { OffsetX = _length * 2 + 1, OffsetY = 0, OffsetZ = 0 }; transformGroup.Children.Add(transform); var zAxisMayTicks = this.TicksProvider.CreateMayorTicks(_zRange, _length); for (int i = 1; i < zAxisMayTicks.Length; i++) { var mayorTickLabel = Text3D.CreateTextLabel3D(this.TicksProvider.GetLabelText(zAxisMayTicks[i]), Brushes.Black, true, 0.2, new Point3D(0, _length + 0.5, zAxisMayTicks[i].AxisValue), new Vector3D(0, 1, 0), new Vector3D(0, 0, 1)); var ticklabelCln = mayorTickLabel.Clone(); ticklabelCln.Transform = transformGroup; mayorTickLabelGroup.Children.Add(mayorTickLabel); mayorTickLabelGroup.Children.Add(ticklabelCln); } var zTextModel = Text3D.CreateTextLabel3D("Z Axis", Brushes.Black, true, 0.2, new Point3D(0, _length + 1.5, _length / 2), new Vector3D(0, 0, 1), new Vector3D(0, -1, 0)); var zTextModel2 = Text3D.CreateTextLabel3D("Z Axis", Brushes.Black, true, 0.2, new Point3D(_length + 1.5, 0, _length / 2), new Vector3D(0, 0, 1), new Vector3D(1, 0, 0)); axisLabelGroup.Children.Add(zTextModel); axisLabelGroup.Children.Add(zTextModel2); }
private void DrawXAxisLabels() { /// Prepare transformation for transfroming label /// from one side to the other side. Transform3D transform = new RotateTransform3D() { Rotation = new AxisAngleRotation3D() { Axis = new Vector3D(1, 0, 0), Angle = 90 } }; var transformGroup = new Transform3DGroup(); transformGroup.Children.Add(transform); transform = new TranslateTransform3D() { OffsetX = 0, OffsetY = _length * 2 + 1, OffsetZ = 0 }; transformGroup.Children.Add(transform); foreach (var tick in _xAxisMayorTicks) { var mayorTickLabel = Text3D.CreateTextLabel3D(this.TicksProvider.GetLabelText(tick), Brushes.Black, true, 0.2, new Point3D(tick.AxisValue, 0, _length + 0.5), new Vector3D(0, 0, -1), new Vector3D(-1, 0, 0)); var ticklabelCln = mayorTickLabel.Clone(); ticklabelCln.Transform = transformGroup; mayorTickLabelGroup.Children.Add(mayorTickLabel); mayorTickLabelGroup.Children.Add(ticklabelCln); } var xTextModel = Text3D.CreateTextLabel3D("X Axis", Brushes.Black, true, 0.2, new Point3D(_length / 2, 0, _length + 1.5), new Vector3D(1, 0, 0), new Vector3D(0, 0, 1)); var xTextModel2 = Text3D.CreateTextLabel3D("X Axis", Brushes.Black, true, 0.2, new Point3D(_length / 2, _length + 1.5, 0), new Vector3D(-1, 0, 0), new Vector3D(0, -1, 0)); axisLabelGroup.Children.Add(xTextModel); axisLabelGroup.Children.Add(xTextModel2); }