DÜZENLEME: Yanıtla birlikte program'u güncelledim ve harika çalışıyor!Dizideki karmaşık bir çokgenin köşe noktaları olan bir dizi nokta saat yönünde mi yoksa saat yönünün tersinde mi tanımlandı?
program (bunu denemek için çekinmeyin), kullanıcıların daha sonra üçgenlenecek çokgenler çizmelerini sağlar. Köşeleri eklemek için tıklayabilir ve üçgenlere girmek için girebilir. Her neyse, algoritma, saatlerin saat yönünde veya saatin tersi yönde çekilip çekilmediğini söyleyebildiğim sürece gayet iyi çalışıyor (şu anda sadece saat yönüne çokgenlerle çalışmak zorunda kaldım). Bunu günlerce çözmeye çalışıyorum, ancak noktaların saat yönünde mi yoksa saat yönünün tersine mi olduğunu belirleme konusunda hiçbir fikrim yok. Daha iyi bir fikir edinmek için daha önce bahsettiğim programla şekil çizmeye çalışın, daha iyi konuştuğum şeyi deneyimlemeyi deneyebileceğimden daha iyi deneyimleyebilirsiniz. Burada
noktaları tanımlanır nasıl:
:
Burada
saat yönünün tersine bir çokgenin bir görüntüdür: Burada
function Point(x, y) {
this.x = x;
this.y = y;
}
var vertices = [];
// Called on click
function addPoint(mouseX, mouseY) {
vertices.push(new Point(mouseX, mouseY));
}
saat yönünde bir çokgen bir resimdir
Eğer noktaların "saat yönü" ni nasıl belirleyeceğimi anlamaya yardım ederseniz çok minnettar olurum!
Her üç nokta arasındaki açıyı ve tüm çokgen için toplamı ölçün. Bir yönde olumlu bir sonuç elde edersiniz, diğerinde ise negatif bir toplam elde edeceksiniz. Poligonunuzun Saatlik bilgisine karşılık gelir. – TMB
Bu soruyu şimdi buldum: http://stackoverflow.com/questions/1165647/how-to-determine-if-a-list-of-polygon-points-are-in-clockwise-order Kabul edilen yanıtın benzer bir çözümü var ama muhtemelen benimkinden daha basit. – kodkod