尝试使用极坐标.如果将x映射为r和y作为θ(归一化为θ从0到2π),则向r添加一些偏移将改变环的半径,向θ添加偏移将使其围绕圆旋转.
r = fx + a
g = (max_y - min_y)/(2*pi)
theta = gy + b
Run Code Online (Sandbox Code Playgroud)
其中a和b是这些偏移,f缩放环的宽度,g将矩形的长度标准化为2π.从这些极坐标到笛卡儿(即屏幕)的转换只是:
x' = r cos(theta)
y' = r sin(theta)
Run Code Online (Sandbox Code Playgroud)
然后,您有3个坐标系:(x,y)表示原始矩形,(r,θ)表示环的极坐标,(x',y')表示屏幕坐标.
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |