Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

köşe kordinatları verilen üçgenin içinde mi dışında mı


Öne çıkan mesajlar

Mesaj tarihi:
Merhaba konuyu nereye uydurcagımı bilemedim, yanlışsa modlar taşısın lütfen.
Şimdi benim diyelim ki köşe kordinatları: (24,239), (62,195),(102,239) olan bi üçgenim var. verilen bir noktanın üçgenin alanı içinde kalıp kalmadıgını nasıl formulize edip bakabilirim?
Mesaj tarihi:
Şöyle bir sorunum var ki.
Eksenlerimi değişmek zorunda kaldım.
Benim y eksenim aşşagıya dogru artp yukarıya dogru azalıyor. Burdaki formul bu yuzden sapıttı snrm.
Nasıl çözebilirim??
Mesaj tarihi:
üçgenin köşelerinin ve içinde mi dışında mı olduğunu bulmak istediğin noktaların üçgenin ağırlık merkezinden geçen ve x eksenine paralel olan bi doğruya simetriğini alıp öyle kullan formülü?
Mesaj tarihi:
herşeyi tersine çevirmiş oluyosun işte. y boyutu yukarı doğru artan bi düzleme göre hesaplamış oluyosun ama herşeyi tersine çevirdiğin için normalde y boyutu aşaa doğru artan düzleme göre doğru çözüm oluyor. yanlış mantık kurmadıysam tabi :D
Mesaj tarihi:
-1le çarpmak da işe yarıyo olmalı aslında eet :P ama ters çevirmede halen mantık hatası göremiyorum, tamamını doğru yaptığına emin misin işlemlerin? bi sürü işlem var çünkü.
Mesaj tarihi:

float GLWidget::calculateTriArea(QPointF p1, QPointF p2, QPointF p3){
float areadd = (1/2 *(fabsf( p1.x()*(p2.y()-p3.y()) - p1.y()*(p2.x() - p3.x())+ (p2.x()*p3.y())-(p3.x()*p2.y()) )));
return areadd;
}



QPointF bir(2,0);
QPointF iki(0,2);
QPointF uc(0,0);
calculateTriArea(bir,iki,uc);


Sıfır donuyo hep delircem ya . Alan nasıl sıfır olur
Mesaj tarihi:
ABC üçgenini al A-B-C ve A-C-B açılarını bul. Daha sonra Nokta-B-C ve Nokta-C-B açılarını bul.

Eğer Nokta-B-C<=A-B-C && Nokta-C-B <= A-C-B ise nokta üçgenin içindedir. Yanlız bunu yaparken atan2 gibi açı dönüş yönünü gözeten fonksiyonlar kullanman lazım yoksa üçgenin BC kenarındaki karşısındaki eş üçgeni içersindeki noktaları da senin üçgenin içindeymiş gibi sayar. Atan2 kullanmak istemiyorum dersen alternatif olarak başta şöyle bir koşul getirebilirsin

mesafe (nokta-A) < mesafe(CBkenarı-A)

yani noktanın A'ya uzaklığı CB kenarından A'ya uzanan yükseklikten kısa olmalı (söylemeye gerek yok tabi mutlak değerleri).

Bütün bunları da en temel vektör cebiri ile yapabilirsin :p


Daha yavaş olacağını düşündüğüm ve uzunluklara bağlı metod:

üçgenin her kenar için üç tane yüksekliğini bulursun sonra da noktanın her kenara olan uzaklığın o yüksekliklerden kısa olup olmadığına bakarsın. eğer birinden bile büyükse nokta üçgenin içinde değildir, eğer üçünden de kısaysa veya eşitse üçgenin içindedir.
Mesaj tarihi:
Ayrıca bir gün gelir de ellipse ve ellipsoidlerle çalışman gerekirse bana sor hayatım ellipse ve ellipsoid lineer cebiri oldu moleküler modelleme yazma programı vesilesiyle sdf
Mesaj tarihi:

uyumaya çalışırken aklıma bi fikir geldi yazayım

ABC üçgeni var ya, AB BC CA doğrularının eğimlerinden yola çıkarak o noktadan geçen üç farklı doğru geçir.


(|AB| diye yazılıyordu doğru parçaları yanlış hatırlamıyorsam da geçin orasını)

görüldüğü gibi içindeyse 3 doğru da kenarlardan biriyle kesişiyor.

ama dışındaysa ikisi kesişiyor, bir kenara paralel olan doğru hiç kesişmiyor.

o kenarları da birer doğruya çevir (atıyorum A(1,1) B(4,10) ise y=3x gibi) , k1 k2 k3 olsun onlar da.

ardından d1 d2 ve d3 ü sırayla k1 k2 k3 ile ortak çözümü var mı diye karşılaştır.

mesela k1:y=3x e tekabül edecek olan kenara paralel d1:y-1=3x doğrusu oluştu, k2 ve k3 ile ortak çözümü olmasına rağmen y=3x ile ortak çözümü olmadığı için o nokta dışarıdadır, hem ne tarafta olduğunu da belirleyebilirsin...


...diye umuyorum.

Mesaj tarihi:
ha bir de şeyi unutmuşum, mesela üçğenin bir köşesinin baktığı kenara paralel olan daha uzaktaki bir doğrunun içindeyse üç doğru da kesişmiyor. bunun gibi bazı "özel" durumlar oluyor benim düşündüğüm yönteme göre ama onları da if döngüleriyle halledersin sanırım.
×
×
  • Yeni Oluştur...