有人可以使用WPF中的ArcSegment显示在两个任意点之间绘制半圆的数学运算.
我对ArcSegment中的RadiusX,RadiusY很困惑.它似乎不是相对于两个点而是相对于X和Y轴.这是真的应该如何?
Jar*_*rek 40
你说得对,Size
的ArcSegment
不是定义弧段的起点和终点之间的半径.此属性描述了应在这些点之间绘制的椭圆的大小.如果您想要一个圆而不是一个椭圆,您必须记住始终将大小的x和y值设置为相同.如果你想要总共绘制一半的圆,你还需要确保Size
这两个点之间的距离的一半.
例如,看下面的代码:
<Canvas>
<Path Stroke="Black">
<Path.Data>
<PathGeometry>
<PathFigure StartPoint="100,100">
<ArcSegment IsLargeArc="True"
Size="50, 50"
Point="200, 100"
SweepDirection="Clockwise" />
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
这将绘制圆的上半部分,从点开始并在点100, 100
结束200, 100
.由于我将Size
属性设置为50, 50
(这些点之间的距离为100),因此这将创建正好一半的圆.SweepDirection
状态,这个圆圈应顺时针绘制,这就是为什么它会画上半部分的原因.查看下面Clockwise
和Counterclockwise
屏幕之间的区别:
IsLargeArc
选择是否绘制更大的椭圆或更小的部分.由于我画了一半的圆圈,这没有任何意义,但是如果你要绘制不同大小的椭圆,这将显着改变输出外观,只需用它来看它是如何工作的.
这是当你尝试使用其大弧形部分放置200, 200
尺寸弧时的外观clockwise
.正如你所看到的 - 弧甚至不适合窗口(这是从WPF设计师拍摄的,在正常的app溢出部分会被切断)
这是同样的事情,但设置为显示小弧:
当我更改Size
属性时200, 200
,绘制的圆圈只是大4倍,但仍然以您定义的精确点开始和结束.Size
与点无关,在这些点之间绘制椭圆/ cricle,但它会改变椭圆形外观.
我希望它表明你是什么意思Size
的ArcSegment
,随便问更详细的问题,如果你仍然感到困惑.
归档时间: |
|
查看次数: |
22469 次 |
最近记录: |