[英]Separation of plane by line given two points
給定兩個帶有xy坐標的點,我指定了一條線。 現在,我想在2維numpy數組中區分行左邊的點和右邊的點。
下面的代碼可以解決問題-但雙循環會傷害我的宗教感受(朝着numpy)。 一定有更聰明的方法嗎?
def myline(a_x,a_y,b_x,b_y):
start=np.zeros((100,100))
for x in range(100):
for y in range(100):
val= (b_x - a_x)*(y - a_y) - (x - a_x)*(b_y - a_y)
if val<=0:
start[x,y]=1
return start
可以使用ogrid
將其向量化:
x, y = np.ogrid[:100, :100]
start = (b_x - a_x)*(y - a_y) - (x - a_x)*(b_y - a_y) <= 0
這將為您提供布爾掩碼。 如果您想要其他dtype
start = start.astype(np.int)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.