我有一個軸對齊框的 3 個角,我必須找到第 4 個角。
我怎樣才能更有效地計算它:
if (loc[0].first != loc[1].first && loc[0].first != loc[2].first)
x = loc[0].first;
else if (loc[1].first != loc[0].first && loc[1].first != loc[2].first)
x = loc[1].first;
else
x = loc[2].first;
if (loc[0].second != loc[1].second && loc[0].second != loc[2].second)
y = loc[0].second;
else if (loc[1].second != loc[0].second && loc[1].second!=loc[2].second)
y = loc[1].second;
else
y = loc[2].second;
uj5u.com熱心網友回復:
假設您有 2 個相同(整數)數字和第三個數字,xor可能會給您預期的數字:
x = loc[0].first ^ loc[1].first ^ loc[2].first;
y = loc[0].second ^ loc[1].second ^ loc[2].second;
如果型別不是整數(所以沒有異或),檢查相等性似乎更具可讀性(這也檢查相等性而不是通過測驗進行兩次檢查不等式):
if (loc[0].first == loc[1].first)
x = loc[2].first;
else if (loc[0].first == loc[2].first)
x = loc[1].first;
else // loc[1].first == loc[2].first
x = loc[0].first;
uj5u.com熱心網友回復:
如果保證點在垂直或水平上完全對齊,則在唯一的橫坐標和唯一的縱坐標處找到第四個角。
if X0 == X1:
X3= X2
elif X0 == X2:
X3= X1
else:
X3= X0
您不能在少于兩次的比較中做到這一點,因為結果取決于三個值。
上相同的代碼Y,獨立。
如果您在有序的軸對齊邊界框之后,請分別取橫坐標和縱坐標的最小值和最大值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/411537.html
標籤:
上一篇:R中的CroutLU分解
