回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一段代码:</p>
<pre><code> points = np.array([[207.0,489.0], [500.0,58.0], [84.0,17.0],[197.0,262.0]])
#read data from the csv file
x = df["XC"]
y = df["YC"]
# make the x,y a point type
pointP = np.array([x,y])
#print(pointP)
rW,rV,rU = calcRatios(points,pointP,ratioU,ratioV,ratioW)
</code></pre>
<p>这就是calcRatios函数</p>
<pre><code>def calcRatios(points,centreP,ratioU,ratioV,ratioW):
v0 = points[1] - points[0]
v1 = points[2] - points[0]
v2 = centreP - points[0]
#dot product of the vects
d00 = np.dot(v0, v0)
d01 = np.dot(v0, v1)
d11 = np.dot(v1, v1)
d20 = np.dot(v2, v0)
d21 = np.dot(v2, v1)
#calc denom
denom = d00 * d11 - d01 * d01
#barycentric ratios of v,w,u
ratioV = (d11 * d20 - d01 * d21) / denom
ratioW = (d00 * d21 - d01 * d20) / denom
ratioU = 1.0 - ratioV - ratioW
return ratioV,ratioW,ratioU
</code></pre>
<p>数据帧中的数据存储方式如下:</p>
<pre><code> Index XC YC R G B
1 0 0 227 227 227
2 1 0 237 237 237
3 2 0 0 0 0
4 3 0 232 232 232
5 4 0 233 233 233
... ... ... ... ... ... ...
</code></pre>
<p>然而,现在我传递到函数中的centreP点似乎有问题,我不知道为什么</p>
<p>我得到的错误是:<code>ValueError: operands could not be broadcast together with shapes (2,28686) (2,)</code>对于此行<code>v2 = centreP - points[0]</code></p>
<p>有人能告诉我为什么会发生这种情况以及应该如何解决吗</p>
<p>谢谢大家!</p>