Sun*_*nny 1 android coordinates
我在android中绘制了一个圆圈,并希望以特定角度在其边缘绘制一些东西.我知道半径,我知道角度从水平(x轴)测量:
计算圆上各自x,y的常规数学公式是
x = x0 + r * cos(theta)
y = y0 + r * sin(theta)
Run Code Online (Sandbox Code Playgroud)
但问题是坐标系android从左上角的0,0开始,然后随着我们向下或向右增加.
那么在以一定角度计算圆的边缘上的x,y时,公式如何变化?还有其他方法可以在android的圆圈边缘找到x,y吗?
谢谢.
在正常的笛卡尔坐标系中,θ从正x轴开始测量,并在逆时针方向旋转时增加.
但是,由于Y轴在用于android中画布的坐标系中是反转的,因此需要调整Y方程以适应:
perimiter_X_coord = center_X_coord + r*cos(theta)
perimiter_Y_coord = center_Y_coord - r*sin(theta)
另外,请记住,如果您正在使用Math.cos()或Math.sin(),他们期望在Radians中的角度.因此,如果您有以度为单位的角度,则需要转换为:
angle_in_radians = angle_in_degrees * (Math.PI / 180)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2511 次 |
| 最近记录: |