資源簡介
java實現(xiàn)的維諾圖,點擊即可生成維諾圖

代碼片段和文件信息
package?voronoidelaunay;
import?java.util.HashSet;
import?java.util.linkedList;
import?java.util.Queue;
import?java.util.Set;
public?class?Delaunay?extends?Triangulation?{
????
????private?Triangle?triangleNewInsert?=?null;??
????public?Delaunay?(Triangle?triangle)?{
????????super(triangle);
????????triangleNewInsert?=?triangle;
????}
????
????
????public?Triangle?FindTriangle?(Vpoint?point)?{//找出三角區(qū)域中包含該點的三角形
????????Triangle?triangle?=?triangleNewInsert;
????????if?(!this.contains(triangle))?triangle?=?null;
????????Set>?visited?=?new?HashSet>();
????????while?(triangle?!=?null)?{
????????????visited.add(triangle);
????????????Vpoint?corner?=?point.beOutTri(triangle.toArray(new?Vpoint[0]));
????????????if?(corner?==?null)?return?triangle;
????????????triangle?=?this.neighborFace(corner?triangle);
????????}
????????for?(Triangle?tri:?this)?{
????????????if?(point.beOutTri(tri.toArray(new?Vpoint[0]))?==?null)?return?tri;
????????}
????????return?null;
????}
????
???
????public?Set>?PointInsert?(Vpoint?point)?{//插入新加入的點
????????Set>?newTriangles?=?new?HashSet>();
????????Set>?oldTriangles?=?new?HashSet>();
????????Set>?hasSet?=?new?HashSet>();
????????Queue>?queue?=?new?linkedList>();
????????Triangle?triangle?=?FindTriangle(point);
????????if?(triangle?==?null?||?triangle.contains(point))?return?newTriangles;
????????queue.add(triangle);
????????while?(!queue.isEmpty())?{
????????????triangle?=?queue.remove();
????????????if?(point.PointCircleOfTri(triangle.toArray(new?Vpoint[0]))?==?1)?continue;
????????????oldTriangles.add(triangle);
????????????for?(Triangle?tri:?this.getNeighbors(triangle))?{
????????????????if?(hasSet.contains(tri))?continue;
????????????????hasSet.add(tri);
????????????????queue.add(tri);
????????????}
????????}
????????for?(Set?facet:?Triangle.boundary(oldTriangles))?{
????????????facet.add(point);
????????????newTriangles.add(new?Triangle(facet));
????????}
????????this.update(oldTriangles?newTriangles);
????????if?(!newTriangles.isEmpty())?triangleNewInsert?=?newTriangles.iterator().next();
????????return?newTriangles;
????}
????
??
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-09-28?22:47??voronoi-job\
?????文件?????????301??2014-09-28?16:27??voronoi-job\.classpath
?????文件?????????387??2014-09-28?16:27??voronoi-job\.project
?????目錄???????????0??2014-09-28?22:47??voronoi-job\.settings\
?????文件?????????598??2014-09-28?16:27??voronoi-job\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2014-09-28?22:50??voronoi-job\bin\
?????目錄???????????0??2014-09-28?22:50??voronoi-job\bin\voronoidelaunay\
?????文件????????3585??2014-09-28?22:50??voronoi-job\bin\voronoidelaunay\Delaunay.class
?????文件????????4550??2014-09-28?22:50??voronoi-job\bin\voronoidelaunay\PaintPanel.class
?????文件????????1867??2014-09-28?22:50??voronoi-job\bin\voronoidelaunay\ShowVoronoi.class
?????文件????????3363??2014-09-28?22:50??voronoi-job\bin\voronoidelaunay\Triangle.class
?????文件????????4390??2014-09-28?22:50??voronoi-job\bin\voronoidelaunay\Triangulation.class
?????文件????????5780??2014-09-28?22:50??voronoi-job\bin\voronoidelaunay\Vpoint.class
?????目錄???????????0??2014-09-28?22:47??voronoi-job\src\
?????目錄???????????0??2014-09-28?22:47??voronoi-job\src\voronoidelaunay\
?????文件????????2448??2014-09-28?20:32??voronoi-job\src\voronoidelaunay\Delaunay.java
?????文件????????5535??2014-09-28?20:11??voronoi-job\src\voronoidelaunay\ShowVoronoi.java
?????文件????????1931??2014-09-28?20:11??voronoi-job\src\voronoidelaunay\Triangle.java
?????文件????????2608??2014-09-28?20:10??voronoi-job\src\voronoidelaunay\Triangulation.java
?????文件????????7494??2014-09-28?19:50??voronoi-job\src\voronoidelaunay\Vpoint.java
評論
共有 條評論