我正在嘗試編寫一個比較方法來執行此操作。如何根據對象在一條線上的位置來比較對象
// If a and b lie on the same horizontal line,
// then a < b when a is to the left of b
// Otherwise, a < b when a is below b
我硝基甲苯真的知道如何做到這一點,通常我只是比較,如果A> B +回報已經int和-ve INT如果小於或0相等。
我從您的建議解決方案.........
我用思想形成吉姆Blackler,拉爾夫和彼得Lawrey以及與此走了過來。它的工作原理對不起,我有點糊塗了,沒想到笛卡爾cordinates感謝Aasmund Eldhuset的,這是我最後的比較方法..它的工作原理
類辭書實現比較{// 這需要如此改寫。 ..
//如果a和b位於同一水平線上, //然後< b當a是b的左側 //否則,< b當a是下文b
公衆詮釋比較(點a,點b) 如果(ay == by)// y軸相同(相同線) if(ax < b.x)//在b的左邊(在x軸上) return -1; 別的 返回1; //至b 右邊} 否則如果(a.y < b.y)// Y軸是不一樣的(未同線以下) { 返回-1;
}
else
return 0;
}
}
的什麼線?你如何存儲一個對象所在的行?事先不知道,我們如何回答? – Jack 2011-04-15 14:18:45
你是什麼意思的「在同一行」是他們在一個數組?是否是這些對象的成員? – MByD 2011-04-15 14:19:24