gpt4 book ai didi

swift - 使用当前坐标查找椭圆最近的边缘 - Spritekit

转载 作者:行者123 更新时间:2023-11-30 14:03:59 24 4
gpt4 key购买 nike

这可能更像是一个数学问题,而不是 Spritekit 或 Xcode 特有的问题,但我想知道是否有人知道一个可以给出所需结果的函数。

我用下面的代码创建了一个椭圆。

var shape = SKShapeNode(ellipseOfSize: CGSize(width: 400, height: 240))

我可以使用触摸事件来查找形状内触摸的位置。

我想要一个函数,它接受这些坐标并返回最近边缘的坐标,并且可以选择将其减少 x 量(例如 10%)。

我可以想象从椭圆中心向外画一条线,但我不确定这是否是正确的方法。显然,使用公式是可能的。

任何人都可以帮助实现某个功能或为我指明正确的方向吗?

最佳答案

最近的边缘?椭圆没有边。
我怀疑你的意思是椭圆上最近的点。
给定:椭圆,半轴为 a 和 b,中心为 (0, 0),点 P=(px, py)
需要:椭圆圆周上最接近P的点的坐标
让我们表示 A = a^2, B = b^2

现在用拉格朗日乘子法我们可以得到

x = px / (k/A + 1)
y = py / (k/B + 1)

并将它们代入椭圆方程

x^2/A + y^2/B = 1
A * px^2 / (k + A)^2 + B * py^2 / (k + B)^2 = 1
A * px^2 * (k + B)^2 + B * py^2 * (k + A)^2 =(k + A)^2 * (k + B)^2

求解最后一个二次方程,得到未知的k,找到实根(最多有四个根),计算每个k的x和y,并选择到P点的最小距离。

关于swift - 使用当前坐标查找椭圆最近的边缘 - Spritekit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32629912/

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