Эллипс с отверстием - PullRequest
3 голосов
/ 19 мая 2011

Как создать эллипс (путь, ...) с отверстием в нем:

Ellipse with hole

Задача - создать визуализацию индикатора трех состояний. Различные состояния визуализируются поворотом регулятора на несколько градусов влево или вправо.

Ответы [ 3 ]

3 голосов
/ 19 мая 2011

=>

    <Path Stroke="Red" StrokeThickness="20">
        <Path.Data>
            <PathGeometry>
                <PathFigure StartPoint="80,0">
                    <ArcSegment x:Name="ArcSeg1" Size="100,100" RotationAngle="0" IsLargeArc="True" 
                SweepDirection="Clockwise" Point="20,0"  >
                    </ArcSegment>
                </PathFigure>
            </PathGeometry>
        </Path.Data>
    </Path>

Здесь есть несколько важных свойств, чтобы понять математику, стоящую за этим, см. http://www.charlespetzold.com/blog/2008/01/Mathematics-of-ArcSegment.html Но в основном вы даете координаты пересечения двух эллипсов:intersection

Начальная точка и точка представляют пересекающиеся точки, а Размер - это размер полного эллипса.Остальное довольно понятно.Если вы хотите повернуть его, самый простой и лучший способ - использовать RotateTransform.

0 голосов
/ 19 мая 2011

Вы можете использовать CombinedGeometry с GeometryCombineMode="Exclude"

Документация имеет хороший пример. example of combined geometry

0 голосов
/ 19 мая 2011

Поможет ли сделать «дыру» белым треугольником на круге?Это можно вращать вокруг центра круга вместе с «указателем» (линией).

I can only apologise for my crude rendering

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...