繁体   English   中英

用2点和圆心绘制圆弧

[英]Draw arc with 2 points and center of the circle

我有两个圆点和圆圈的中心。 我想在这些点之间画一条弧。 方法drawArc很简单,不符合我的目的。 有人帮忙吗?

您可以使用Canvas.drawArc,但必须计算它需要的参数:

让我们说圆的中心是(x0,y0)并且弧包含你的两个点(x1,y1)和(x2,y2)。 然后半径是:r = sqrt((x1-x0) (x1-x0)+(y1-y0) (y1-y0))。 所以:

int r = (int)Math.sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0));
int x = x0-r;
int y = y0-r;
int width = 2*r;
int height = 2*r;
int startAngle = (int) (180/Math.PI*atan2(y1-y0, x1-x0));
int endAngle = (int) (180/Math.PI*atan2(y2-y0, x2-x0));
canvas.drawArc(x, y, width, height, startAngle, endAngle);

祝好运!

Graphics.drawArc需要以下参数:

  • X
  • ÿ
  • 宽度
  • 高度
  • 由startAngle
  • arcAngle

给定弧起点和终点,可以计算绘制弧的边界框 这为您提供了足够的信息来提供参数:x,y,width和height。

你没有指定所需的角度,所以我猜你可以任意选择一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM