Как нарисовать дугу от радиуса и внутреннего угла в Silverlight - PullRequest
2 голосов
/ 19 февраля 2010

В проекте Silverlight 3 я должен нарисовать дугу программно, и у меня есть радиус круга и внутренний угол дуги.Не могли бы вы направить меня к некоторым связанным статьям.

Спасибо в ожидании!

Haris

Ответы [ 3 ]

3 голосов
/ 19 февраля 2010

Это хорошая статья о динамическом построении дуг http://codingbandit.com/Blog/blog/dynamically-creating-path-data-in-silverlight-2/

Для расчета баллов используется следующая формула.

x = a + r * cos(θ)
y = b + r * sin(θ)

* r is the radius of the circle
* (a,b) is the center of the circle
* (x,y) is the point on the circumference
* θ is the angle in degrees
* radian = degree * π/180

у вас есть радиус круга r, а также угол θ. Это должно создать точечный ряд.

2 голосов
/ 19 февраля 2010

Вы захотите взглянуть на Пути в серебряном свете, в частности в разделе ArcSegments.

Документация ArcSegment

Образцы геометрии пути MSDN

1 голос
/ 20 января 2011

С Expression Blend 4 . Вы можете использовать Arc.

Пример:

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing"
    x:Class="SilverlightApplication1.MainPage"
    Width="640" Height="480">

    <Grid x:Name="LayoutRoot" Background="White">
        <Canvas Margin="101,88,118,125">
            <ed:Arc ArcThickness="0" ArcThicknessUnit="Pixel" EndAngle="90" Fill="#FFF4F4F5" Height="60" Canvas.Left="101" Stretch="None" Stroke="Black" StartAngle="0" Canvas.Top="63" UseLayoutRounding="False" Width="57"/>
        </Canvas>
    </Grid>
</UserControl>
...