graphics相关内容
任何人都可以向 CSharp 推荐任何公共 AABB/三角形相交算法的有效端口. 我一直在研究 Moller 的方法,抽象地描述了 这里,如果我要移植它,我可能会从 这个 C++ 版本.这个由 Mike Vandelay 编写的 C++ 库 似乎这也是一个很好的起点. ...或...任何其他“轮子",可以采用 Vector3 的三角形并告诉我它是否与 AABB 相交),相对有效.
..
我有一些由代表隧道的“折线"(每条线只是一个顶点列表)组成的地图文件,我想尝试找到隧道的“中心线"(大致如下所示,以红色显示). 我过去曾使用 Delaunay triangulation 取得过一些成功,但我想避免使用该方法,因为它(通常)不允许轻松/频繁地修改我的地图数据. 关于我如何能够做到这一点的任何想法? 解决方案 一种适用于本地化数据更改的“算法". 评论家的
..
如何为给定点创建最小的 OOBB?创建 AABB 或球体非常容易,但创建最小 OOBB 时遇到问题. [编辑] 第一个答案没有给我带来好的结果.我没有大量的点云.我的积分很少.我正在做碰撞几何生成.例如,立方体有 36 个点(6 个边,每个三角形 2 个,每个三角形 3 个点).第一篇文章的算法对立方体给出了不好的结果.多维数据集的示例点:http://nopaste.dk/downl
..
我有一个程序,我可以用鼠标在四个方向中任意一个方向绘制一个矩形. 这些矩形在图片框上用于裁剪图像的一部分. 绘制这些矩形时必须保持给定尺寸的比例,例如 320 x 200. 我希望这个工具的行为与 Photoshop 中的裁剪工具非常相似,或者类似于此处的裁剪示例:https://imageresize.org/ 我的大部分元素都能正常工作,我只是在一些几何计算上苦苦挣扎.
..
我在绘制谢尔宾斯基三角形(或谢尔宾斯基垫片)的代码时遇到了一些问题,但我不确定是什么问题.绘制三角形的线,然后绘制所有分形,然后消失.帮忙? import javax.swing.*;导入 java.awt.*;公共类 SierpinskiGasket 扩展 JFrame {点 x=新点(5,545),y=新点(300,25),z=新点(605,545),当前=x,目标;私人int计数=0;公共
..
嘿嘿.正在制作游戏,并且正在寻找仅在 3D 空间中与正方形或矩形相交的光线.在网上搜索并找到了许多解决方案,但我无法理解在 2D 中具有线段和线段相交脚本,但我无法弄清楚必须将其设为 3D.它从哪一侧与正方形或矩形相交并不重要,但它必须能够检索交点矢量,以便稍后可以测试它是否发生在同一光线交点上的其他交点之前或之后的距离. 非常感谢任何 Python 或其他类似脚本语言的示例 编辑:不
..
我有一个带有网格布局的 JPanel.在网格的“单元格"中,我可以放置不同的元素(例如 JButtons).没有问题.但现在我想在一些单元格中放置一个实心圆圈.我还想将 ActionListener 与这些圈子联系起来.更详细地说,如果我单击圆圈,它将从当前单元格中消失并出现在另一个单元格中.我怎样才能在Java中做到这一点?我正在使用 Swing. 解决方案 public void pa
..
我有两个 2D 矩形,分别定义为 origin (x,y)、size(高度、宽度)和 旋转角度 (0-360°).我可以保证两个矩形的大小相同. 我需要计算这两个矩形相交的近似面积. 计算不需要精确,尽管可以.我会将结果与其他相交区域进行比较,以确定一组矩形中的最大相交区域,因此它只需要相对于同一算法的其他计算准确. 我考虑过使用相交区域的边界框的面积,但由于所有不同的可能情况,
..
这个问题与: 如何确定GDI+中两条线的交点?(很好的代数解释,但没有代码) 如何检测两条线的位置段相交?(接受的答案实际上不起作用) 但请注意,一个有趣的子问题在大多数解决方案中都被完全掩盖了,即使存在三个子案例,它们也只为重合案例返回 null: 重合但不重叠 触摸点和重合 重叠/重合线子段 例如,我们可以设计一个这样的 C# 函数: public static
..
我需要从表示为点列表的封闭二维多边形创建二进制位图.能否请您指出有效且足够简单的算法来做到这一点,或者更好的是一些 C++ 代码? 非常感谢! PS:我想避免向我的项目添加依赖项.但是,如果您建议一个开源库,我可以随时查看代码,因此它也很有用. 解决方案 你想要的神奇谷歌短语是“非零缠绕规则"或“偶数多边形填充". 查看维基百科条目: 非零缠绕规则 偶数多边形填充
..
在 iOS 中,我试图确定矩形上的点,该点与从中心点到矩形周边的假想线以预定角度相交. 假设我知道中心点、矩形的大小和角度(从东方的 0 度开始,逆时针经过北方的 90 度、西方的 180 度和南方的 270 度,再到东方的 360 度).我需要知道相交点的坐标. 在 在给定角度的矩形上查找点 导致我尝试以下代码,但它不能正常工作.这个问题与那个问题相似,但我正在寻找一种更正的 Obj
..
在使用贝塞尔曲线近似绘制 2D 圆弧时,如果您有圆的中心点、起点和终点角度以及半径,如何计算两个控制点? 解决方案 这在 StackOverflow 帖子中不容易解释,特别是因为向您证明它会涉及许多详细步骤.但是,您所描述的是一个常见问题,并且有许多详尽的解释.请参阅此处和这里;我很喜欢#2,之前也用过.
..
如果椭圆的长轴是垂直的或水平的,那么边界框的计算很容易,但是当椭圆旋转时呢? 到目前为止,我能想到的唯一方法是计算周边的所有点并找到最大/最小 x 和 y 值.好像应该有更简单的方法. 如果有一个函数(在数学意义上)以任意角度描述一个椭圆,那么我可以使用它的导数来找到斜率为零或未定义的点,但我似乎找不到. 编辑:澄清一下,我需要轴对齐的边界框,即它不应该与椭圆一起旋转,但要与 x
..
如何测试线段是否与二维中的轴对齐矩形相交?该段由其两端定义:p1,p2.矩形由左上角和右下角定义. 解决方案 原海报想检测线段和多边形之间的交点.没有必要找到交叉口,如果有的话.如果这就是你的意思,你可以做的工作比 Liang-Barsky 或 Cohen-Sutherland 少: 令线段端点为 p1=(x1 y1) 和 p2=(x2 y2). 设矩形的角为 (xBL yBL)
..
数组中的四个二维点.我需要按顺时针顺序对它们进行排序.我认为只需一次交换操作即可完成,但我无法正式将其放下. 编辑:在我的例子中,这四个点是一个凸多边形. 编辑:四个点是凸多边形的顶点.它们不需要按顺序排列. 解决方案 如果你想从更数学的角度来看,我们可以考虑4个点的排列 在我们的例子中,有 4 个排列顺时针排列 A B C DB C D AC D A BD A B C
..
我在窗口中画了一条线,让用户拖动它.所以,我的线由两点定义:(x1,y1) 和 (x2,y2).但现在我想在我的线的末端画“帽子",即在我的每个端点处画短垂直线.大写字母的长度应为 N 个像素. 因此,要在端点 (x1,y1) 处绘制我的“帽"线,我需要找到两个点形成一条垂直线,并且每个点距点 (x1,y1). 那么如何计算一个点 (x3,y3),因为它需要与已知直线的终点 (x1,y
..
Java 有问题据我所知没有用Java 来绘制几何图形,代码和下面的你能帮我吗? 这是代码: 公共类 Gioco {公共静态无效主要(字符串参数[]){油漆矩形();}公共静态无效PaintRect(){g.drawRect(100,100,300,300);g.drawLine(100,100,100,100);g.setBackground(Color.BLACK);System.ou
..
我非常疯狂地试图计算沿给定线 A-B 的点,距离 A 的给定距离,这样我就可以“绘制"两个给定点之间的线.一开始听起来很简单,但我似乎无法正确理解.更糟糕的是,我不明白我哪里出错了.几何(和一般的数学)不是我的强项. 我已经阅读了类似的问题,并且在 SO 上有答案.事实上,我直接从 Mads Elvheim 的回答中提升了当前对 CalculatePoint 函数的实现:给定起点和终点以及距
..
测试点 P 是否在由一组点 X 形成的凸包内的最简单方法是什么? 我想要一种在高维空间(例如,最多 40 维)中工作的算法,它不会显式计算凸包本身.有什么想法吗? 解决方案 问题可以通过找到一个线性规划的可行点来解决.如果您对完整的细节感兴趣,而不是仅仅将 LP 插入现有的求解器,我建议您阅读 Boyd 和 Vandenberghe 关于凸优化的优秀著作. 设置A = (X[1
..
我尝试过使用具有相同高度和宽度的 drawOval 方法,但随着直径的增加,圆的外观变得更糟.无论大小,我该怎么做才能拥有一个像样的圆圈.我将如何在 java 或其他方法中实现抗锯齿. 解决方案 事实证明,Java2D(我假设是你正在使用的)在这方面已经相当出色了!这里有一个不错的教程:http://www.javaworld.com/javaworld/jw-08-1998/jw-08-
..