我需要在不同厚度的android中画一个弧,如下图所示,
是否可以绘制弧形并剪辑它?因为弧可以在任何度数之间(startDegree到endDegree),我不能用路径来实现它。
所以我的要求是这样的,
请帮助我实现上述目标。
答案 0 :(得分:1)
我认为,您可以使用Path
执行此操作你的弧边有:
所以,你需要花一些数学来计算这些坐标和参数。
<强> UPD:强>
请看看this question
好像我在那里找到了这条曲线的确切公式。
UPD 2:
关于如何在画布上绘制螺旋,我认为不是很糟糕的解决方案就像here(使用javascript,但没关系 - 这个想法是一样的)。
唯一的事情是:需要在笛卡尔坐标系中编写螺旋方程。尝试自己做。如果你失败了,那就问我。
UPD 3: 检查上面提到的问题的UPD2部分,找到笛卡尔坐标系参数化。 它可能包含错误,我没有自己检查,但这个想法应该是明确的。
希望它有所帮助。
答案 1 :(得分:0)
以下功能可行,请记住转换为弧度的角度(以度为单位)。请将数据类型更改为double:
void spiralArc(int startAngle, ind endAngle, int centreX, int centreY,int radius, int maxThickness)
{
int iRadius;
for(int ang=startAngle;ang<=endAngle;ang++)
{
iRadius = radius - (int)((double) maxThickness*(double)ang/(double)endAngle);
drawLine(centreX+(radius*cos(ang)), centreY+(radius*sin(ang)), centreX+(iradius*cos(ang)), centreY+(iradius*sin(ang)))
}
}