Sorunla karşılaştım ve nasıl çözeceğimi bilmiyorum.Saatlerin saat yönünün ayrılması
Noktaların listesini, bir yol oluşturmak için tüm noktaların olacak şekilde sıralamaya çalışıyorum. Şimdiye kadar yaptığım şey listedeki tüm noktaların merkez noktasını hesapladım ve daha sonra sıralama işleminin yapıldığı this post kodunu kullandım. İşte ödünç kod parçacığı:
public int Compare(Point3D pointA, Point3D pointB)
{
if (pointA.X - CenterPoint.X >= 0 && pointB.X - CenterPoint.X < 0)
return 1;
if (pointA.X - CenterPoint.X < 0 && pointB.X - CenterPoint.X >= 0)
return -1;
if (pointA.X - CenterPoint.X == 0 && pointB.X - CenterPoint.X == 0)
{
if (pointA.Y - CenterPoint.Y >= 0 || pointB.Y - CenterPoint.Y >= 0)
if (pointA.Y > pointB.Y)
return 1;
else return -1;
if (pointB.Y > pointA.Y)
return 1;
else return -1;
}
// compute the cross product of vectors (CenterPoint -> a) x (CenterPoint -> b)
double det = (pointA.X - CenterPoint.X)*(pointB.Y - CenterPoint.Y) -
(pointB.X - CenterPoint.X)*(pointA.Y - CenterPoint.Y);
if (det < 0)
return 1;
if (det > 0)
return -1;
// points a and b are on the same line from the CenterPoint
// check which point is closer to the CenterPoint
double d1 = (pointA.X - CenterPoint.X)*(pointA.X - CenterPoint.X) +
(pointA.Y - CenterPoint.Y)*(pointA.Y - CenterPoint.Y);
double d2 = (pointB.X - CenterPoint.X)*(pointB.X - CenterPoint.X) +
(pointB.Y - CenterPoint.Y)*(pointB.Y - CenterPoint.Y);
if (d1 > d2)
return 1;
else return -1;
}
sorunsuz çalışıyor ama bazen harikalar çalışır Bazı durumlarda, ekteki resimler bakın, siyah nokta hesaplanır merkez noktası:
resim A'da herşey yolunda ama iki yatay çizgiler oluşturan noktaları yukarı taşımak için karar verirseniz, ben bu işe çalıştırın:
Yeşil çizgi nasıl görünmesi gerektiği, siyah çizgi gerçekten nasıl göründüğü ve neden böyle olduğunu anlayamıyorum. Aynı sonuçlarla atan()
çözümlerini denedim. Herhangi bir yardım gerçekten takdir edilecektir.
Resimlerinize hesaplanan merkezi noktanın konumunu eklemenin ilginç olacağını düşünüyorum – pm100
Ana göreviniz nedir? – gabba
Bir nokta listem var ve bu noktalar üzerinden yol çizmek istiyorum. Ne yazık ki sıralanmamış ve yanlış sonuçlar veriyorlar. Bu yüzden onları kendim ayırmaya çalışıyorum. @gabba – niks