本文整理汇总了C#中Axis.Transform方法的典型用法代码示例。如果您正苦于以下问题:C# Axis.Transform方法的具体用法?C# Axis.Transform怎么用?C# Axis.Transform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Axis
的用法示例。
在下文中一共展示了Axis.Transform方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RenderMinorItems
/// <summary>
/// Renders the minor items.
/// </summary>
/// <param name="axis">
/// The axis.
/// </param>
/// <param name="axisPosition">
/// The axis position.
/// </param>
private void RenderMinorItems(Axis axis, double axisPosition)
{
double eps = axis.ActualMinorStep * 1e-3;
double actualMinimum = axis.ActualMinimum;
double actualMaximum = axis.ActualMaximum;
double plotAreaLeft = this.Plot.PlotArea.Left;
double plotAreaRight = this.Plot.PlotArea.Right;
double plotAreaTop = this.Plot.PlotArea.Top;
double plotAreaBottom = this.Plot.PlotArea.Bottom;
bool isHorizontal = axis.IsHorizontal();
double a0;
double a1;
var minorSegments = new List<ScreenPoint>();
var minorTickSegments = new List<ScreenPoint>();
this.GetTickPositions(axis, axis.TickStyle, axis.MinorTickSize, axis.Position, out a0, out a1);
foreach (double value in this.MinorTickValues)
{
if (value < actualMinimum - eps || value > actualMaximum + eps)
{
continue;
}
if (this.MajorTickValues.Contains(value))
{
continue;
}
if (axis.PositionAtZeroCrossing && Math.Abs(value) < eps)
{
continue;
}
double transformedValue = axis.Transform(value);
if (isHorizontal)
{
SnapTo(plotAreaLeft, ref transformedValue);
SnapTo(plotAreaRight, ref transformedValue);
}
else
{
SnapTo(plotAreaTop, ref transformedValue);
SnapTo(plotAreaBottom, ref transformedValue);
}
// Draw the minor grid line
if (this.MinorPen != null)
{
if (isHorizontal)
{
minorSegments.Add(new ScreenPoint(transformedValue, plotAreaTop));
minorSegments.Add(new ScreenPoint(transformedValue, plotAreaBottom));
}
else
{
if (transformedValue < plotAreaTop || transformedValue > plotAreaBottom)
{
}
minorSegments.Add(new ScreenPoint(plotAreaLeft, transformedValue));
minorSegments.Add(new ScreenPoint(plotAreaRight, transformedValue));
}
}
// Draw the minor tick
if (axis.TickStyle != TickStyle.None)
{
if (isHorizontal)
{
minorTickSegments.Add(new ScreenPoint(transformedValue, axisPosition + a0));
minorTickSegments.Add(new ScreenPoint(transformedValue, axisPosition + a1));
}
else
{
minorTickSegments.Add(new ScreenPoint(axisPosition + a0, transformedValue));
minorTickSegments.Add(new ScreenPoint(axisPosition + a1, transformedValue));
}
}
}
// Draw all the line segments);
if (this.MinorPen != null)
{
this.rc.DrawLineSegments(minorSegments, this.MinorPen);
}
if (this.MinorTickPen != null)
{
//.........这里部分代码省略.........
示例2: Render
/// <summary>
/// Renders the specified axis.
/// </summary>
/// <param name="axis">The axis.</param>
/// <param name="pass">The pass.</param>
/// <exception cref="System.NullReferenceException">Angle axis should not be null.</exception>
public override void Render(Axis axis, int pass)
{
base.Render(axis, pass);
var angleAxis = this.Plot.DefaultAngleAxis as Axis;
if (axis.RelatedAxis != null)
{
angleAxis = axis.RelatedAxis;
}
if (angleAxis == null)
{
throw new NullReferenceException("Angle axis should not be null.");
}
if (axis.ShowMinorTicks)
{
// GetVerticalTickPositions(axis, axis.TickStyle, axis.MinorTickSize, out y0, out y1);
foreach (double xValue in this.MinorTickValues)
{
if (xValue < axis.ActualMinimum || xValue > axis.ActualMaximum)
{
continue;
}
if (this.MajorTickValues.Contains(xValue))
{
continue;
}
var pts = new List<ScreenPoint>();
for (double th = angleAxis.ActualMinimum;
th <= angleAxis.ActualMaximum + angleAxis.MinorStep * 0.01;
th += angleAxis.MinorStep * 0.1)
{
pts.Add(axis.Transform(xValue, th, angleAxis));
}
if (this.MinorPen != null)
{
this.rc.DrawLine(pts, this.MinorPen.Color, this.MinorPen.Thickness, this.MinorPen.DashArray);
}
// RenderGridline(x, y + y0, x, y + y1, minorTickPen);
}
}
// GetVerticalTickPositions(axis, axis.TickStyle, axis.MajorTickSize, out y0, out y1);
foreach (double xValue in this.MajorTickValues)
{
if (xValue < axis.ActualMinimum || xValue > axis.ActualMaximum)
{
continue;
}
var pts = new List<ScreenPoint>();
for (double th = angleAxis.ActualMinimum;
th <= angleAxis.ActualMaximum + angleAxis.MinorStep * 0.01;
th += angleAxis.MinorStep * 0.1)
{
pts.Add(axis.Transform(xValue, th, angleAxis));
}
if (this.MajorPen != null)
{
this.rc.DrawLine(pts, this.MajorPen.Color, this.MajorPen.Thickness, this.MajorPen.DashArray);
}
// RenderGridline(x, y + y0, x, y + y1, majorTickPen);
// var pt = new ScreenPoint(x, istop ? y + y1 - TICK_DIST : y + y1 + TICK_DIST);
// string text = axis.FormatValue(xValue);
// double h = rc.MeasureText(text, axis.Font, axis.FontSize, axis.FontWeight).Height;
// rc.DrawText(pt, text, axis.LabelColor ?? plot.TextColor,
// axis.Font, axis.FontSize, axis.FontWeight,
// axis.Angle,
// HorizontalAlignment.Center, istop ? VerticalAlignment.Bottom : VerticalAlignment.Top);
// maxh = Math.Max(maxh, h);
}
}
示例3: RenderMajorItems
/// <summary>
/// Renders the major items.
/// </summary>
/// <param name="axis">
/// The axis.
/// </param>
/// <param name="axisPosition">
/// The axis position.
/// </param>
/// <param name="titlePosition">
/// The title position.
/// </param>
private void RenderMajorItems(Axis axis, double axisPosition, double titlePosition)
{
double eps = axis.ActualMinorStep * 1e-3;
double actualMinimum = axis.ActualMinimum;
double actualMaximum = axis.ActualMaximum;
double plotAreaLeft = this.Plot.PlotArea.Left;
double plotAreaRight = this.Plot.PlotArea.Right;
double plotAreaTop = this.Plot.PlotArea.Top;
double plotAreaBottom = this.Plot.PlotArea.Bottom;
bool isHorizontal = axis.IsHorizontal();
double a0;
double a1;
var majorSegments = new List<ScreenPoint>();
var majorTickSegments = new List<ScreenPoint>();
this.GetTickPositions(axis, axis.TickStyle, axis.MajorTickSize, axis.Position, out a0, out a1);
foreach (double value in this.MajorTickValues)
{
if (value < actualMinimum - eps || value > actualMaximum + eps)
{
continue;
}
if (axis.PositionAtZeroCrossing && Math.Abs(value) < eps)
{
continue;
}
double transformedValue = axis.Transform(value);
if (isHorizontal)
{
SnapTo(plotAreaLeft, ref transformedValue);
SnapTo(plotAreaRight, ref transformedValue);
}
else
{
SnapTo(plotAreaTop, ref transformedValue);
SnapTo(plotAreaBottom, ref transformedValue);
}
if (this.MajorPen != null)
{
if (isHorizontal)
{
majorSegments.Add(new ScreenPoint(transformedValue, plotAreaTop));
majorSegments.Add(new ScreenPoint(transformedValue, plotAreaBottom));
}
else
{
majorSegments.Add(new ScreenPoint(plotAreaLeft, transformedValue));
majorSegments.Add(new ScreenPoint(plotAreaRight, transformedValue));
}
}
if (axis.TickStyle != TickStyle.None)
{
if (isHorizontal)
{
majorTickSegments.Add(new ScreenPoint(transformedValue, axisPosition + a0));
majorTickSegments.Add(new ScreenPoint(transformedValue, axisPosition + a1));
}
else
{
majorTickSegments.Add(new ScreenPoint(axisPosition + a0, transformedValue));
majorTickSegments.Add(new ScreenPoint(axisPosition + a1, transformedValue));
}
}
}
// Render the axis labels (numbers or category names)
foreach (double value in this.MajorLabelValues)
{
if (value < actualMinimum - eps || value > actualMaximum + eps)
{
continue;
}
if (axis.PositionAtZeroCrossing && Math.Abs(value) < eps)
{
continue;
}
double transformedValue = axis.Transform(value);
if (isHorizontal)
{
//.........这里部分代码省略.........