29 Kasım 2008, CUMARTESİ
Nasıl bir nokta bir doğru üzerinde iki nokta arasında olduğunu tespit edebilir misiniz?
Hadi 2 puan (a ve b adlı) ile iki boyutlu bir düzlemde x bir tamsayı tarafından temsil edilen ve her bir nokta için y bir tamsayı olduğunu varsayalım.
Nasıl başka bir nokta c hat kesimi a ve b tarafından tanımlanan tespit EDEBİLİR MİSİN?
Python en kullanıyorum, ama herhangi bir dilde örnekler yararlı olacaktır.
CEVAP
29 Kasım 2008, CUMARTESİ
Eğer kontrol edinçapraz ürün(c-a) Darius Pastırma söylediği gibi 0, (b-a) ve puan verir a, b ve c hizalanır.
Ama eğer c ve b arasında olup olmadığını bilmek istediğiniz gibi, siz de kontrol edinnokta ürün(b-a) (c-a)olumluvedaha aza ve b arasındaki mesafenin daha Kare.
Non-optimize edilmiÅŸ ve kesinliÄŸi:
def isBetween(a, b, c):
crossproduct = (c.y - a.y) * (b.x - a.x) - (c.x - a.x) * (b.y - a.y)
if abs(crossproduct) > epsilon : return False # (or != 0 if using integers)
dotproduct = (c.x - a.x) * (b.x - a.x) (c.y - a.y)*(b.y - a.y)
if dotproduct < 0 : return False
squaredlengthba = (b.x - a.x)*(b.x - a.x) (b.y - a.y)*(b.y - a.y)
if dotproduct > squaredlengthba: return False
return True
Bunu PaylaÅŸ:
Nasıl bir form alanı doğru kapibara ku...
Nasıl kullanıcı localhost üzerinde PHP...
Nasıl Javascript bir tam Sayı kayan no...
Nasıl bölüm Python kayan nokta olması ...
Nasıl javascript bir kayan nokta biçim...