我目前正在 LBP2 中开发一款游戏,该游戏修改了控制器提供输入的方式。这个问题:如何将正方形上的坐标转换为圆上的坐标? https://stackoverflow.com/questions/1621831/how-can-i-convert-coordinates-on-a-square-to-coordinates-on-a-circle对我正在做的事情帮助很大,但我确实有一个问题。我需要他们给出的函数的反函数。它们从方形 -> 圆形,我尝试到处搜索如何将圆形映射到方形。
上一个问题中给出的函数是:
xCircle = xSquare * sqrt(1 - 0.5*ySquare^2)
圆 = 正方形 * sqrt(1 - 0.5*x 正方形^2)
From 将正方形映射为圆形 http://mathproofs.blogspot.com/2005/07/mapping-square-to-circle.html
我的问题是 xCircle 和 yCircle...我如何找到 xSquare 和 ySquare?
我已经尝试了所有我所知道的代数,写满了两页笔记,试图让 Wolfram alpha 得到反函数,但是这个问题超出了我的能力范围。
感谢您的浏览。
x = ½ √( 2 + u² - v² + 2u√2 ) - ½ √( 2 + u² - v² - 2u√2 )
y = ½ √( 2 - u² + v² + 2v√2 ) - ½ √( 2 - u² + v² - 2v√2 )
注意符号:我使用 x = x Square 、 y = Square 、 y = Circle 和 v = Circle ;
i.e. (u,v)是圆盘坐标和(x,y)是方坐标。
对于方程的 C++ 实现,请访问
http://squirular.blogspot.com/2015/09/mapping-circle-to-square.html http://squircular.blogspot.com/2015/09/mapping-circle-to-square.html
See http://squirular.blogspot.com http://squircular.blogspot.com获取更多示例图像。
另请参阅http://arxiv.org/abs/1509.06344 http://arxiv.org/abs/1509.06344用于证明/推导
该映射是以下映射的逆
u = x √( 1 - ½ y² )
v = y √( 1 - ½ x² )
附:该映射不是唯一的。还有其他映射。下图说明了映射的非唯一性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)