如果我有4分
var x1;
var y1;
var x2;
var y2;
var x3;
var y3;
var x4;
var y4;
组成一个盒子。所以
(x1,y1) is top left
(x2,y2) is top right
(x3,y3) is bottom left
(x4,y4) is bottom right
然后每个点的权重范围为 0-522。如何计算位于框内的坐标 (tx,ty),该点更靠近权重最小的位置(但要考虑所有权重)。因此,例如。如果 (x3,y3) 的权重为 0,其他人的权重为 522,则 (tx,ty) 应为 (x3,y3)。如果 (x2,y2) 的权重像 400,那么 (tx,ty) 应该从 (x3,y3) 向 (x2,y2) 移动一点。
有谁知道这是否有一个公式?谢谢
假设w1
, w2
, w3
,w4
是权重。你可以从这个(伪代码)开始:
M = 522
a = 1
b = 1 / ( (1 - w1/M)^a + (1 - w2/M)^a + (1 - w3/M)^a + (1 - w4/M)^a )
tx = b * (x1*(1-w1/M)^a + x2*(1-w2/M)^a + x3*(1-w3/M)^a + x4*(1-w4/M)^a)
ty = b * (y1*(1-w1/M)^a + y2*(1-w2/M)^a + y3*(1-w3/M)^a + y4*(1-w4/M)^a)
这应该近似于您想要完成的行为。对于最简单的案例集a=1
,您的公式会更简单。您可以通过更改a
.
如果您使用 Javascript,请确保使用Math.pow
而不是^
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句