从起点、终点和半径绘制圆弧
Draw an Arc from a start point, end point and a radius
我正在寻找弧上 n 点的点列表;我会知道起点、终点和半径。
用户将通过单击 3 次鼠标来构建圆弧,前两次用于定义起点和终点,第三次用于设置半径的大小。
谢谢。
编辑:我不仅需要渲染它 - 我还需要点列表,所以使用渲染 API 来做这不会削减它。
根据语言的不同,它可能已经具有绘制圆弧的功能,这肯定比自己绘制要容易得多。
如果您想获得圆弧上等距点的列表,请计算角度值并使用此值的 (1/n)th 使用以下文章中导出的等式生成点 -
https://en.wikipedia.org/wiki/Rotation_of_axes#Derivation
'n'的数值越高,获得的积分就越多。您可能还想看看下面的文章-
设h
为起点和终点之间的一半距离。通过毕达哥拉斯,中点到圆心的距离是w=√r²-h²
。您可以通过从中点垂直绘制长度为 w
的线段来找到该中心。
圆弧的起始角度由tan(φ)=δy/δx
给出,起点与圆心之间,终点相似。
那么你的n
点的坐标是
Xc + r cos(φs + k (φe-φs)/(n-1))
Yc + r sin(φs + k (φe-φs)/(n-1))
对于 k= 0,1,...n-1
。
我正在寻找弧上 n 点的点列表;我会知道起点、终点和半径。
用户将通过单击 3 次鼠标来构建圆弧,前两次用于定义起点和终点,第三次用于设置半径的大小。
谢谢。
编辑:我不仅需要渲染它 - 我还需要点列表,所以使用渲染 API 来做这不会削减它。
根据语言的不同,它可能已经具有绘制圆弧的功能,这肯定比自己绘制要容易得多。
如果您想获得圆弧上等距点的列表,请计算角度值并使用此值的 (1/n)th 使用以下文章中导出的等式生成点 -
https://en.wikipedia.org/wiki/Rotation_of_axes#Derivation
'n'的数值越高,获得的积分就越多。您可能还想看看下面的文章-
设h
为起点和终点之间的一半距离。通过毕达哥拉斯,中点到圆心的距离是w=√r²-h²
。您可以通过从中点垂直绘制长度为 w
的线段来找到该中心。
圆弧的起始角度由tan(φ)=δy/δx
给出,起点与圆心之间,终点相似。
那么你的n
点的坐标是
Xc + r cos(φs + k (φe-φs)/(n-1))
Yc + r sin(φs + k (φe-φs)/(n-1))
对于 k= 0,1,...n-1
。