I have this piece of 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)
and this is the calcRatios function
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
The data from the dataframe is stored like this:
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
... ... ... ... ... ... ...
However right now there seems to be an issue with the centreP point that I am passing into the function and I am not sure why.
The error I get says : ValueError: operands could not be broadcast together with shapes (2,28686) (2,) for this line v2 = centreP - points[0]
Could someone tell me why this is happening and how it should be fixed?
Thank you!
df["XC"]anddf["YC"]?