2 Mayıs 2010, Pazar
Dikdörtgen kesişim hızlı dikdörtgen
Eğer 2 dikdörtgenler kesişen eğer test etmek için hızlı bir yolu nedir?
İnternette bir arama bu oyunu (HEYO!!) ile geldi, ama Javascript yazmak için nasıl anlamıyorum, C eski bir formda yazılmış gibi görünüyor .
struct
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
bool IntersectRect(const RECT * r1, const RECT * r2)
{
return ! ( r2->left > r1->right
|| r2->right left
|| r2->top > r1->bottom
|| r2->bottom top
);
}
CEVAP
2 Mayıs 2010, Pazar
Bu kod JavaScript tercüme edilebilir. Yorumların da öne sürdüğü gibi, kodunuzda bir yazım hatası, madde miktarı, unutmayın. Özellikle r2->right left
r2->right < r1->left
r2->bottom top
işlevi çalışmak için r2->bottom < r1->top
olmalıdır.
function intersectRect(r1, r2) {
return !(r2.left > r1.right ||
r2.right < r1.left ||
r2.top > r1.bottom ||
r2.bottom < r1.top);
}
Case Test:
var rectA = {
left: 10,
top: 10,
right: 30,
bottom: 30
};
var rectB = {
left: 20,
top: 20,
right: 50,
bottom: 50
};
var rectC = {
left: 70,
top: 70,
right: 90,
bottom: 90
};
intersectRect(rectA, rectB); // returns true
intersectRect(rectA, rectC); // returns false
Bunu Paylaş:
bir uçak formunda ise 4 puan bir dikdö...
Nasıl Çekirdekli Grafik / Kuvars 2D yu...
Daire-Dikdörtgen çarpışma algılama (ka...
Android tuval dikdörtgen çizin...
Nasıl Android UI yuvarlatılmış dikdört...