Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
3 Boyutlu Uzay; 2 Üçgen Kesişir mi?
Kerem ERZURUMLU Hacettepe Üniversitesi Bilgisayar Bilimleri Mühendisliği
2
Soru 3 boyutlu uzayda bulunmakta olan 2 üçgenin kesişip kesişmediğini bulan bir uygulama geliştiriniz.
3
Cevap Üçgenler kesişiyorsa;
Üçgenlerden birinin en az 1 kenarı diğer üçgeni keser.
4
Algoritma İki üçgen için Algoritma karmaşıklığı O(6n²) = O(n²)
Üçgenin her kenarı için Kenar diğer üçgen ile kesişmekte mi? Algoritma karmaşıklığı O(6n²) = O(n²)
5
Kullanılan Sınıflar Ders kapsamındaki sınıflar temel alındı.
Triangle3D ve Poligon temel sınıflar
6
Kullanılan Sınıflar Triangle3D Polygon Point3D Edge3D Vertex Node
7
Kesişme Yordamı int lineTriangleIntersect(Edge3D &e, Triangle3D &p, double &t) { Point3D q; int h, v; int aclass = e.intersect(p, t); if ((aclass==PARALLEL) || (aclass==COLLINEAR)) return aclass; q = e.point(t); if (p.n().dotProduct(Point3D(0,0,1)) != 0.0) h = 0; v = 1; else if (p.n().dotProduct(Point3D(1,0,0)) != 0.0) h = 1; v = 2; else h = 1; v = 0; Polygon *pp = project(p,h,v); Point qp = Point(q(h), q(v)); int answer = pointInConvexPolygon(qp, *pp); delete pp; return (answer ? SKEW_CROSS :SKEW_NO_CROSS); }
8
Girdi/Çıktı Grafik bir arabirim tasarlanmadı.
İstememe rağmen basit bir 3D kütüphanesi bulamadım. Metin Tabanlı girdi/çıktı tercih edildi.
9
Girdi/Çıktı [root@zerd ComGeo]# ./lab1
Please enter 1st point of triangle 1 (x,y,z): 1,3,5 Please enter 2nd point of triangle 1 (x,y,z): 2,4,6 Please enter 3rd point of triangle 1 (x,y,z): 3,5,7 Please enter 1st point of triangle 2 (x,y,z): 0,4,6 Please enter 2nd point of triangle 2 (x,y,z): 5,1,8 Please enter 3rd point of triangle 2 (x,y,z): 2,10,5 Calculating... They intersect.
10
Kerem ERZURUMLU kerem@linux.org.tr http://www.penguen.net
3 Boyutlu Uzay; 2 Üçgen Kesişir mi? Seminer Sonu Katılımcılılarımıza teşekkür ederiz Kerem ERZURUMLU
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.