相关疑难解决方法(0)

从用于计算三角形和圆周的swingworker重新绘制applet

我试图复制这里发现的小程序作为练习的一部分.小程序正在使用Fortune的算法来生成两者; Voronoi图和Delaunay三角剖分.我只对在平面中生成Delaunay三角剖分感兴趣,因此,将使用增量算法,即一次添加1个点.我打算在添加采样点时显示在每个阶段生成的三角形.

我正在使用SwingWorker类来创建包含算法的Triangulate类的实例.我在for循环中调用triangulate方法,当单击GUI上的开始按钮时,它会遍历一组采样点.

这是代码:

JButton startButton = new JButton("Start");
        startButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                SwingWorker<List<Triangle>, Triangle> worker = new SwingWorker<List<Triangle>, Triangle>() {
                    @Override
                    protected List<Triangle> doInBackground() throws Exception {
                        Triangulate dt = new Triangulate(drawingPanel.pointsList());
                        dt.preTriangulate(); //Set-up a bounding triangle and obtain a random permutation of the points
                        List<PlanarPoint> pointsList = dt.pointsList();
                        for (int i = 0; i < pointsList.size(); i++) {
                            PlanarPoint sample = pointsList.get(i);
                            dt.triangulate(sample); 
                            List<Triangle> list = dt.trianglesList(); //Obtaining the list of triangles …
Run Code Online (Sandbox Code Playgroud)

java graphics swing swingworker computational-geometry

3
推荐指数
1
解决办法
553
查看次数