gpt4 book ai didi

javascript - 是否有可能比使用平方距离算法更快地测试两个圆的交点?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:35 24 4
gpt4 key购买 nike

我有这段代码来计算这个圆是否与另一个圆相交。我想要一个更快的版本,这可能吗?

this.CheckIntersection = function(another){
var xC = this.x;
var yC = this.y;
var GxC = another.x;
var GyC = another.y;
var distSq = (xC - GxC) * (xC - GxC) + (yC - GyC) * (yC - GyC);
return distSq < (this.r + another.r) * (this.r + another.r);
}

最佳答案

好吧,你可以试着改进一下,如下所示:

this.CheckIntersection = function(another){
var dx = this.x-another.x;
var dy = this.y-another.y;
dx = dx*dx+dy*dy;
dy = this.r+another.r;
return dx < dy*dy;
}

这会更快一些,因为您节省了一些减法,并且您使用了更少的变量,因此运行时环境将更容易处理寄存器分配/缓存。

但就时间复杂度而言,您无能为力。因此,您仅限于窥孔优化,例如寻找重复计算并尝试只计算一次。

关于javascript - 是否有可能比使用平方距离算法更快地测试两个圆的交点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743499/

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