gpt4 book ai didi

java - 如何在圆弧的末端画一条线?

转载 作者:行者123 更新时间:2023-12-02 10:02:55 25 4
gpt4 key购买 nike

如何像这样在圆弧末端画一条线?

example image

这是我当前用来绘制圆弧的代码

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
canvasWidth = MeasureSpec.getSize(widthMeasureSpec);
canvasHeight = MeasureSpec.getSize(heightMeasureSpec);
padding = strokeWidth * 0.9f;
arcAngle = 360 * 0.8f;
rectF.set(padding, padding, canvasWidth - padding, canvasHeight - padding);
arcRadius = (canvasWidth - padding) / 2f;
arcBottomHeight = arcRadius * (float) (1 - Math.cos(angle / 180 * Math.PI));
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
float startAngle = 270 - arcAngle / 2f;
float finishedSweepAngle = progress / (float) getMax() * arcAngle;
float finishedStartAngle = startAngle;

canvas.drawArc(rectF, startAngle, arcAngle, false, unfinishedPaint);
canvas.drawArc(rectF, finishedStartAngle, finishedSweepAngle, false, finishedPaint);
}

这会在彼此之上绘制 2 条弧线,其中彩色弧线 (finishedPaint) 代表进度。

我想使用canvas.drawLine()在圆弧末端绘制线条,但不确定如何获取坐标来指定线条的起点和终点坐标。

最佳答案

使用三角函数。您知道圆弧的半径及其结束角度。 x 为radius*sin(endangle)+xcenter,y 为radius*cos(endangle)+ycenter。然后以与所在位置相同的角度画线。

关于java - 如何在圆弧的末端画一条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55504464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com