我在尝试查找从多边形上的给定顶点可见的多边形上的所有顶点时遇到问题。到目前为止,我所写的内容只取得了有限的成功。我可以生成光线到可见顶点,但前提是我的原点不在顶点上,使用以下方法:privateArrayListgetGloballyVisible(Point2Dorigin,ArrayListpolys){ArrayListvisible=newArrayList();for(Polygontarget:polys){ArrayListtargetVisibleLines=getVisiblePointsOnPolygon(origin,target);ArrayListsubTar
我需要以更快的方式确定点的象限。我只知道“使用标志确定”方法。我正在寻找一个好的方法,如果有的话。如果没有,对我的代码的任何修复都会有所帮助。假设平面上有4个四边形。我的代码-intx=scan.nextInt()>0?1:0;inty=scan.nextInt()>0?1:0;switch(x){case1:switch(y){case1:quad=1;break;case0:quad=4;break;}break;case0:switch(y){case1:quad=2;break;case0:quad=3;break;}break;} 最佳答案
我正在尝试使用AffineTransform从中心缩放矩形。我确定解决方案很明显,但我无法让它发挥作用!这是我到目前为止测试过的...importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Rectangle;importjava.awt.geom.AffineTransform;importjavax.swing.JOptionPane;importjavax.swing.JPanel;publicclassTestex
我有一个带孔的二维多边形作为输入,我需要找到它的直骨架,如图所示:(来源:cgal.org)也许有适合它的Java库?如果没有,您能否指出算法的详细解释,以便我自己实现?(我在谷歌上没有找到好的资源) 最佳答案 这是我不久前写的。不确定它是否足够坚固。https://github.com/twak/campskeleton(2018年编辑...) 关于用于创建直骨架的Java库?,我们在StackOverflow上找到一个类似的问题: https://stac
我正在使用JavaGraphics,但总是出现“丑陋”的圆圈。这是我的Java程序所做的这是在Matlab中制作的同样的东西我认为很明显,Java看起来不如Matlab看起来“漂亮”,尤其是在圆圈的边缘。请注意,这与分辨率无关……这些图像实际上大小相同。另请注意,我已经设置了渲染提示。这是一个带有Main函数的独立程序,您可以运行它来对此进行测试。packagetest;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Dimension;importjava.awt.EventQueue;importjav
我用线画了一个三角形。我怎样才能在上面填充颜色?到目前为止,我只能成功地给线条上色,但不能填充颜色。publicvoidpaintComponent(Graphicsg){super.paintComponents(g);intk=0;for(j=0;j 最佳答案 制作Polygon从顶点并通过调用fillPolygon(...)来填充它://Asimpletriangle.x[0]=100;x[1]=150;x[2]=50;y[0]=100;y[1]=150;y[2]=150;n=3;Polygonp=newPolygon(x,y
原帖:我试图找到凸多边形的最外层顶点(与多边形外的点P相关)。目前,我只关心矩形(但是,我想要一种适用于任何凸多边形的算法)。我的计划是构建一条从外部点P到中心点C的直线。根据这条引用线,我将构建从点P到点1、2、的线3和4。由于点2和4与引用线的夹角最大(最正)和最小(最负),因此它们将是标识为最外层的顶点。这是这项工作的最佳算法吗?如何从引用角度计算角度(最好在Java中)?澄清更新:我画了线(引用线为红色)。如您所见,从P到2的线在引用线的一侧形成最大角度,而从strong>P到4创造另一边的最大角度。因此,这些是最外层的顶点。 最佳答案
我正在制作一款游戏,用户玩家可以在屏幕上放置圆圈。重要的是圆圈永远不会重叠,所以我需要找出距离光标最近的可能空闲点。我找到了圆包装算法,但它们似乎不适合我的问题。我过去也解决过类似的盒子问题(here),但对于圆圈,我似乎无法弄清楚。我想出了如何找到最近的自由位置,当它与一个圆相交时,甚至当两个圆相交时。但是,我找不到可以处理在任何排列中具有任何个圆圈的复杂情况的稳健算法。问题的具体描述:我有一个2D空间,其中包含任意数量的不相交圆圈,所有圆圈都具有相同的半径(尽管这可能无关紧要)。我想为下一个圆找到一个位置,使其不与任何其他圆相交,并且中心[x,y]最接近指定位置[x,y]。感谢任何
我有一个封闭的凸多面体,它由一组凸多边形(面)定义,这些凸多边形由3D空间中的顶点数组定义。假设密度均匀,我试图找到多面体的质心。目前我用这个伪代码中的算法计算它。publicVector3getCentroid(){Vector3centroid=(0,0,0);for(faceinfaces){Vector3point=face.centroid;point.multiply(face.area());centroid.add(point);}centroid.divide(faces.size());returncentroid;}这实质上是采用面部质心的加权平均值。我不能100
我正在尝试弄清楚如何设计一种算法来完成这项具有O((n+s)logn)复杂度的任务。s是交叉点的数量。我试过在互联网上搜索,但找不到任何东西。无论如何,我意识到拥有良好的数据结构是关键。我在java中使用红黑树实现:TreeMap。我还使用著名的(?)扫描线算法来帮助我处理我的问题。让我先解释一下我的设置。我有一个调度程序。这是一个PriorityQueue,我的圈子根据最左边的坐标排序(升序)。scheduler.next()基本上轮询PriorityQueue,返回下一个最左边的圆圈。publicCirclenext(){returnthis.pq.poll();}我这里还有一个包