ArcSegment C#公式在Arc WPF上获取特定点

问题描述

我在从Path绘制的画布上有弧线,其中包含以下详细信息。我想得到Point(115,225)。请查看屏幕截图以获取更多详细信息。请帮助我使公式达到目标(115,225)。

startX=250
startY=250
ArcSegment Size (70,70)
ArcSegment Point (250,200)

computation
var meanX=(startX+startX)/2-rX;//(250+250)/2-70=180 
var meanY=(startY+ArcSegment.Point.Y)/2-rY;//(250+200)/2-70=225
//center Point (180,225)
//What is the formula if I want to get Point(115,225)

XAML

<Canvas Name="canvas" Background="White" Opacity="99">
         <Path stroke="Blue" MouseLeftButtonDown="Path_MouseLeftButtonDown" >
            <Path.Data>
                <PathGeometry>
                    <PathfigureCollection>
                        <Pathfigure StartPoint="250,250" IsClosed="True">
                            <ArcSegment Size="70,70" IsLargeArc="True" SweepDirection="Clockwise" Point="250,200"/>
                        </Pathfigure>
                    </PathfigureCollection>
                </PathGeometry>
            </Path.Data>
        </Path>
    </Canvas>

C#

private void Path_MouseLeftButtonDown(object sender,MouseButtonEventArgs e)
        {
            var curve = sender as Path;
            var geometry = curve.Data as PathGeometry;
            var figure = geometry.figures.FirstOrDefault();
            var arcSegment = figure.Segments.FirstOrDefault() as ArcSegment;
            var startX = figure.StartPoint.X;
            var yStart = figure.StartPoint.Y;
            var startAngle = arcSegment.Point.X;
            var sweepAngle = arcSegment.Point.Y;
            var rX = arcSegment.Size.Width; 
            var rY = arcSegment.Size.Height; 
            var endAngle = startAngle + sweepAngle;
            var meanX = (startX + startAngle) / 2 - rX;
            var meanY = (yStart + sweepAngle) / 2 - rY;
            
        }

屏幕截图

Output screenshot

解决方法

经过数小时的研究,我发现这里所有东西。

 var geometry = path.Data as PathGeometry;
 var leftX=geometry.Bounds.Location.X;
 var topY=geometry.Bounds.Location.Y;

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...