Tag: 几何

重叠圆圈的组合区域

我最近遇到了一个问题,我有四个圆圈(中点和半径),不得不计算这些圆圈的面积。 示例图像: 对于两个圈子来说很简单, 我可以计算不在三angular形内的每个圆圈区域的分数,然后计算三angular形的面积。 但是当有两个以上的圆圈时,我可以使用一个聪明的algorithm吗?

如何从三点计算angular度?

可以说你有这个: P1 = (x=2, y=50) P2 = (x=9, y=40) P3 = (x=5, y=20) 假设P1是一个圆的中心点。 它总是一样的。 我想要由P2和P3的angular度,换句话说就是P1的angular度。 内angular要精确。 它始终是一个锐angular,所以不到-90度。 我想:男人,那简单的几何math。 但是我现在已经找了6个小时左右的公式,只能find人们在谈论复杂的NASA的东西,比如arccos和vector标量产品。 我的头感觉像是在冰箱里。 这里的一些math大师认为这是一个简单的问题? 我不认为编程语言在这里是重要的,但对于那些认为它的人:java和objective-c。 我需要这两个,但没有标记这些。

为什么我的球消失?

请原谅这个有趣的标题。 我创build了一个200个球弹跳和碰撞的小图示,两个都在墙上和对方。 你可以看到我目前在这里: http : //www.exeneva.com/html5/multipleBallsBouncingAndColliding/ 问题是,每当他们相互碰撞,他们消失。 我不知道为什么。 有人可以看一看,帮助我吗? 更新:显然球数组有球坐标的NaN。 下面是我推球到arrays的代码。 我不完全确定坐标是如何得到NaN的。 // Variables var numBalls = 200; // number of balls var maxSize = 15; var minSize = 5; var maxSpeed = maxSize + 5; var balls = new Array(); var tempBall; var tempX; var tempY; var tempSpeed; var tempAngle; var tempRadius; var tempRadians; […]

algorithm来检测圆与相同平面中的任何其他圆相交

我正在寻找一种algorithm来检测一个圆是否与同一平面上的任何其他圆相交,因为在一个平面上可以有多个圆。 我发现的标准方法是做分离轴testing(没有谷歌search)。 它说: Two objects don't intersect if you can find a line that separates the two objects. eg the objects / all points of an object are on different sides of the line. 但我不知道如何将其应用于圆圈。 有人可以帮我吗?

从具有x,y和z坐标的点生成网格

问题:从3D点(使用x,y和z坐标)生成网格。 我所拥有的是3D空间中的点(带有x,y和z坐标),您可以在图像1中看到它。 输出是图像2还是图像3或图像4.简而言之,它将是网格。 如果我有网格,可以提供材料。 我见过很多人说德劳内三angular剖分或约束德劳内三angular剖分将帮助我生成网格,但是我最主要的发现是它在二维点(只有x和y坐标)上的实现。 但是我的问题是:从图像1可以看到,我有三维点。 Delaunay三angular剖分还是约束Delaunay三angular剖分可以很好地处理3D点? 如果是,那么如何? 或者我必须find另一种从3D点生成网格的algorithm? 注意:在这里可以find一个很好的2D Delaunay三angular剖分的解释

2angular之间的最小差异

给定在坐标周围的-PI-> PI范围内的两个angular度,它们之间的两个angular度中最小的值是多less? 考虑到PI和-PI之间的差异不是2PI,而是零。 例: 设想一个圆圈,从中心出来有两条线,这两条线之间有两个angular度,它们在内部形成的angular度又称为较小的angular度 ,以及它们在外部形成的angular度,也就是更大的angular度。 两个angular度加起来就成了一个整圆。 考虑到每个angular度可以在一定的范围内, angular度值越小,考虑到侧翻

如何比较两个形状?

有没有办法比较两个几何形状(或任何两个更通用的数据结构),而不是在涉及容差时使用暴力? 蛮力(比较每个对象的每个值与另一个对象的每个值)是有效的,但速度很慢,我不能使用它。 我试着对数据进行sorting并比较两个已sorting的集合。 速度很快,但它只适用于零容忍。 一旦我添加容忍,我迷路了。 问题是,当我比较时,两个值可能是相同的,而当我sorting时,这两个值是不同的。 这里是我的问题的一些细节。 在我的Excel VBA加载项中,我有一个Shape对象集合,它们由两个Point对象构成的Line对象集合构成。 该加载项通过COM扫描CADgraphics并创buildShape对象的集合。 一个简化的版本可以产生这个: Shape 1 Shape 2 Point 1 0.0 5.0 0.0 4.9 Point 2 4.9 0.0 5.1 0.0 Point 3 5.0 5.0 5.0 5.0 我需要找出哪些形状与哪些形状相同,其中相同的手段具有相同的形状,大小和方向,但不是相同的位置(到目前为止,这是微不足道的)加上或减去一个宽容(现在不是很微不足道)! Point.IsIdenticalTo(OtherPoint)被定义为: Function IsIdenticalTo(OtherPoint As Point) As Boolean IsIdenticalTo = Abs(X – OtherPoint.X) < Tolerance And Abs(Y – OtherPoint.Y) < Tolerance End […]

得到最接近的一条线

我想有一个直接的C#函数来获得最近点(从点P)到线段AB。 抽象函数可能看起来像这样。 我已经通过search,但没有find一个可用(由我)的解决scheme。 public Point getClosestPointFromLine(Point A, Point B, Point P);

在OpenGL中绘制球体而不使用gluSphere()?

有没有任何教程,解释了如何在OpenGL中绘制球体而不必使用gluSphere() ? 许多OpenGL的3D教程只是在立方体上。 我已经search,但绘制一个球体的大部分解决scheme是使用gluSphere() 。 还有一个网站有代码在这个网站上绘制一个球体,但它不能解释绘制球体的背后的math。 我也有其他版本的如何绘制在多边形领域,而不是四边形在该链接。 但是,我不明白这些代码是如何绘制的。 我希望能够可视化,以便我可以在需要时修改球体。

find一组最大的连续矩形来覆盖多个区域

我正在为“ 矮人堡垒”(Dwarf Fortress)这款游戏开发一款名叫“ Quickfort ”的工具。 Quickfort将csv / xls格式的电子表格转换为一系列矮人要塞的命令,以便在游戏中绘制“蓝图”。 我目前正在尝试优化解决这个工具的2.0版本的面积绘图问题。 考虑下面的“蓝图”,它定义了二维网格的绘图命令。 网格中的每个单元格应该挖出(“d”),通道(“c”)或不保留(“。”)。 实际使用中可能会出现任意数量的不同绘图命令。 . d . dcc ddddcc . ddd . c dddddc . d . ddc 为了尽量减less需要发送给矮人堡垒的指令数量,我想find一组最大的连续矩形,它们可以形成为完全覆盖或“绘制”所有绘图单元格。 为了有效,给定矩形的所有单元必须包含相同的命令。 这是比Quickfort 1.0更快的方法:将每个单元分别绘制为1×1的矩形。 这个video显示了两个版本之间的性能差异。 对于上面的蓝图,解决scheme如下所示: . 9 . 0 3 2 8 1 1 1 3 2 . 1 1 1 . 2 7 1 1 1 4 […]