我正在研究植绒算法,为此我需要有一个凝聚力的算法。为此,我使用这一行:
velocityVector.X = 10 / (distX - distanceBetweenLabels)
* (label.Location.X - ctrl.Location.X);
在此行之后,velocitVector.X始终等于0. distX始终为正。我的目标是在颗粒之间产生良好的内聚力,同时保持它们之间的最小距离。
更新
所以感谢评论10 / (distX - distanceBetweenLabels)
默认为整数计算,因此将整行等同于0。
答案 0 :(得分:2)
10 / (distX - distanceBetweenLabels)
* (label.Location.X - ctrl.Location.X);
如果分母结果为整数,则 10保持表达式为整数
对于10.0
的浮点数,将其更改为10F
或更高10D
以获得双精度。
评估以下内容:
var intTest = 10/123;
var floatTest = 10F/123;
var doubleTest = 10D/123;
输出为:
0
0.08130081
0.0813008130081301