C# 已知起点 终点 圆心 如何画圆弧。

cxclz668 2009-09-24 11:07:08
MSDN是这样的
C#
public void DrawArc (
Pen pen,
float x,
float y,
float width,
float height,
float startAngle,
float sweepAngle
)


参数
pen
Pen,它确定弧线的颜色、宽度和样式。

x
定义椭圆的矩形的左上角的 x 坐标。

y
定义椭圆的矩形的左上角的 y 坐标。

width
定义椭圆的矩形的宽度。

height
定义椭圆的矩形的高度。

startAngle
从 x 轴到弧线的起始点沿顺时针方向度量的角(以度为单位)。

sweepAngle
从 startAngle 参数到弧线的结束点沿顺时针方向度量的角(以度为单位)。

问题1:
这里面的巨星宽度和高度分别是什么意思??/
问题2:

我就不明白这些角度如何算出来的
能帮忙给个方法吗??
...全文
1874 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxclz668 2009-09-24
  • 打赏
  • 举报
回复
明白了·
cxclz668 2009-09-24
  • 打赏
  • 举报
回复
r=sqrt((Ax-Bx)^2+(Ay-By)^

这个^ 是什么符号啊???
luotuo512 2009-09-24
  • 打赏
  • 举报
回复
1.椭圆可以由一个矩形唯一确定,知道矩形的长和宽就能确定椭圆的形状。
2.你想画圆弧,已知圆心(Ax、Ay),起始点(Bx,By)和结束点(Cx,Cy)。可得圆半径r=sqrt((Ax-Bx)^2+(Ay-By)^2).BC之间距离k=sqrt((Cx-Bx)^2+(Cy-By)^2)
需要求的参数:
pen
Pen,它确定弧线的颜色、宽度和样式。

x
定义椭圆的矩形的左上角的 x 坐标。
Ax-r
y
定义椭圆的矩形的左上角的 y 坐标。
Ay-r
width
定义椭圆的矩形的宽度。
2*r
height
定义椭圆的矩形的高度。
2*r
startAngle
从 x 轴到弧线的起始点沿顺时针方向度量的角(以度为单位)。
arctan(By/Bx)
sweepAngle
从 startAngle 参数到弧线的结束点沿顺时针方向度量的角(以度为单位)。
2*arcsin((k/2)/r)
zcw840421 2009-09-24
  • 打赏
  • 举报
回复
第二个问题,如果你是研究图形的就很容易做,就是连接圆心和开始点结束点,然后以圆心做一条水平线,求水平线与圆心与开始点和结束点的夹角即可。(可能不对,你可以试一下)
zcw840421 2009-09-24
  • 打赏
  • 举报
回复
第一个问题,圆是一种特殊的椭圆,也就是上边的 x, y, width, height, 相等,都是该圆的半径。在GDI+中绘制圆弧的基准点不是圆心,而是该圆外切矩形的左上角点,(也就是x,y点)height,和width分别对应了长轴和短轴。
cxclz668 2009-09-24
  • 打赏
  • 举报
回复
角度怎么不要算呢,
我只知道起点坐标和终点坐标和圆心坐标,
我又不知道角度是多少?
我就是想知道如何把角度算出来,。
你不能随便用个角度来画把?
风之影子 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cxclz668 的回复:]
我的意思是绘制一段弧线 
[/Quote]

TempZhuChart.DrawArc(BorderPen, 20, 20, 100, 100, 100, 210);

liffe 2009-09-24
  • 打赏
  • 举报
回复
|------------------------|
| |
|------------------------|
画图都是基于巨型的,因为要定位坐标。
风之影子 2009-09-24
  • 打赏
  • 举报
回复
TempZhuChart.DrawArc(BorderPen, 20, 20, 100, 100, 100, 360);

角度不用算

距形的高是指你所要绘图的整个图的高和宽,

如果你改为下面的

就是一个椭圆了
TempZhuChart.DrawArc(BorderPen, 20, 20, 100, 200, 100, 360);
cxclz668 2009-09-24
  • 打赏
  • 举报
回复
我的意思是绘制一段弧线
cxclz668 2009-09-24
  • 打赏
  • 举报
回复
圆弧
zcw840421 2009-09-24
  • 打赏
  • 举报
回复
你是要画圆弧还是椭圆弧?
yuanhuiqiao 2009-09-24
  • 打赏
  • 举报
回复
可以试试
System.Drawing.Drawing2D.GraphicsPath graphPath = new System.Drawing.Drawing2D.GraphicsPath();
graphPath.AddArc(x,y, width, height, startAngle, sweepAngle);
// Draw graphics path to screen.
graphics.DrawPath(new Pen(Color.Black, 3), graphPath);

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧