簡體   English   中英

給定兩點的線平面分離

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM