Tag: geometry

获取GeneralPath的有序顶点

如何获取GeneralPath对象的顶点? 看起来这应该是可能的,因为路径是由点(lineTo,curveTo等)构成的。 我正在尝试创建一个double [] []点数据(x / y坐标数组)。

如何将距离(英里)转换为度?

我正在使用Spatial数据处理应用程序。 在这里,我需要找到从质心到点的距离。 可以知道如何在Java中将里程转换为度数吗?

有没有办法在JTS中将自相交多边形转换为多面?

取无效多边形POLYGON((0 100, 100 100, 0 0, 100 0, 0 100)) – 一个带有未声明交点的蛋计时器形状 许多指令说JTS可以使用buffer方法创建一个有效版本: Geometry input = new WKTReader().read(“POLYGON((0 100, 100 100, 0 0, 100 0, 0 100))”); Geometry output = geom.buffer(0); return output; 但是,这会产生输出POLYGON ((0 100, 100 100, 50 50, 0 100)) ,其中部分多边形丢失: 有没有办法让JTSvalidation多边形,使其产生输出MULTIPOLYGON(((0 100, 100 100, 50 50, 0 100)), ((0 0, 100 0, […]

三角形没有在OSX上的OpenGL 2.1中绘制

我正在学习使用OpenGL在Java中创建游戏引擎的教程。 我想在屏幕上渲染一个三角形。 一切都运行正常,我可以改变背景颜色,但三角形不会显示。 我也试过运行作为教程系列的一部分提供的代码,它仍然无法正常工作。 链接到教程: http : //bit.ly/1EUnvz4 链接到video中使用的代码: http : //bit.ly/1z7XUlE 建立 我已经尝试检查OpenGL版本并且相信我有2.1。 Mac OSX Java – Eclipse Mesh.java import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.opengl.GL15.*; import static org.lwjgl.opengl.GL20.*; public class Mesh { private int vbo; //pointer to the buffer private int size; //size of the data to buffer public Mesh () { vbo = […]

SVG /矢量图形对象布尔运算(并集,交集,减法)

我有2D闭合矢量路径,在SVG路径类语法中指定 – 即这些路径包括直线和各种贝塞尔曲线。 有没有什么像一个小的,漂亮的和离散的库(最好用C,Java或Ruby,但如果这个库干净且易于使用,任何语言都会这样做),允许做这些路径的联合,交叉和减法等布尔运算? 到目前为止我发现的内容包括: 巨大而昂贵的商业矢量图形产品(例如Autodesk AutoCAD或Adobe Illustrator),可以使用某种API调用或编写脚本来执行布尔2D路径操作 – 这对我来说显然是一种过度杀伤力。 Inkscape开发的内部lib2geom库缺少文档,绑定,有一些编译问题,似乎除了Inkscape本身之外没有项目使用,看起来相当复杂。 CGAL是一个庞大且相当复杂的计算几何库,可以在非常奇怪的对象空间中工作(即你有疯狂的模板组合,命令式样式函数来对这些模板化数据结构进行操作等),而且似乎没有对C ++以外的其他语言进行合理的绑定。 Python CG绑定似乎被抛弃了,对我来说看起来并不友好。 JTS似乎以GIS为中心,只处理直线,而我需要处理类似SVG的Bezier曲线。 所以,问题是,是否还有其他小型,漂亮和简单的库可以在类似SVG的路径上处理布尔操作?

在Java中组合区域时舍入不准确?

我正在使用Java中的Areas 。 我的测试程序绘制三个随机三角形并将它们组合成一个或多个多边形。 Areas是.add()编辑后,我使用PathIterator跟踪边缘。 但是,有时候,“ Area对象不会按照它们的组合进行组合……正如您在上一张图片中看到的那样,将绘制额外的边缘。 我认为问题是由Java的Area类中的舍入不准确引起的(当我调试测试程序时, Area在使用PathIterator之前显示间隙),但我不认为Java提供了任何其他方式来组合形状。 有解决方案? 示例代码和图像: import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Area; import java.awt.geom.Line2D; import java.awt.geom.Path2D; import java.awt.geom.PathIterator; import java.util.ArrayList; import java.util.Random; import javax.swing.JFrame; public class AreaTest extends JFrame{ private static final long serialVersionUID = -2221432546854106311L; Area area = new Area(); ArrayList areaSegments = new ArrayList(); AreaTest() […]