Java 使用L系统绘制道路后添加建筑

Java 使用L系统绘制道路后添加建筑,java,lwjgl,Java,Lwjgl,我正在创建一个按程序生成的城市,在L系统添加了所有道路之后,我对添加建筑背后的逻辑产生了问题 我做了很多研究,因为这是我最后一年的项目,但不幸的是,我找不到更多关于增加建筑的内容,而是更多关于增加道路的内容 我的程序使用L系统绘制每条道路,当与另一条道路相交或改变方向时,它会将道路添加到无向平面图中。添加的道路目前只是线条,还没有宽度,因为我想在添加之前对添加建筑的基本逻辑进行排序。L系统绘制的道路将是随机角度,而不是直角 我最初找到建筑物放置位置的方法是围绕图形顺时针旋转以找到道路内的多边形,

我正在创建一个按程序生成的城市,在L系统添加了所有道路之后,我对添加建筑背后的逻辑产生了问题

我做了很多研究,因为这是我最后一年的项目,但不幸的是,我找不到更多关于增加建筑的内容,而是更多关于增加道路的内容

我的程序使用L系统绘制每条道路,当与另一条道路相交或改变方向时,它会将道路添加到无向平面图中。添加的道路目前只是线条,还没有宽度,因为我想在添加之前对添加建筑的基本逻辑进行排序。L系统绘制的道路将是随机角度,而不是直角

我最初找到建筑物放置位置的方法是围绕图形顺时针旋转以找到道路内的多边形,然后将建筑物添加到找到的多边形内。我目前似乎无法让这项工作,因为道路是死胡同,顺时针移动图形似乎不会产生正确的结果

主要问题是,位于道路交叉口的建筑物可能与道路重叠。我希望建筑物的位置与游戏Subversion类似

如果有任何其他的方法,我已经尝试过,我想听听你的想法


任何帮助都将不胜感激

您的问题位于

" 然后将建筑物添加到找到的多边形中。我目前似乎无法实现这一点,如果道路是死胡同,它也有问题。 "

从几何角度讲,yu应该能够定义一个多边形,并查看建筑物的底部是否适合该多边形

要么使用java多边形,要么自己动手


具体地说,如果我理解正确,出问题的地方会得到具体的答案。问题是一个多边形可以包含许多建筑物。否则,定义多边形并查看底部是否适合该多边形的方法也可以只检查它是否与任何道路相交。我有另一个想法,在道路的左侧和右侧添加节点,当它们被添加时,如果它们不与道路相交,将在其上放置建筑物,但我似乎无法绕过它。我想知道你对游戏Subversion在定义了建筑物之后如何将其添加到道路中有什么看法?