Questions tagged «geometry»

与几何相关的数据结构和算法。

4
如何计算线段的法线向量?
假设我有一个从(x1,y1)到(x2,y2)的线段。如何计算垂直于线的法向矢量? 我可以找到很多有关在3D平面上执行此操作的内容,但没有2D内容。 请轻松学习数学(欢迎链接到工作示例,图表或算法),我是程序员,而不是数学家;)
176 math  geometry  vector 


5
按顺时针顺序对点排序?
给定一个x,y点数组,如何按顺时针顺序(在它们的整体平均中心点附近)对该数组的点排序?我的目标是将这些点传递给线创建函数,以得到看起来很“实心”的东西,尽可能凸,没有线相交。 对于它的价值,我正在使用Lua,但任何伪代码都将不胜感激。 更新:作为参考,这是基于Ciamej出色答案的Lua代码(忽略我的“ app”前缀): function appSortPointsClockwise(points) local centerPoint = appGetCenterPointOfPoints(points) app.pointsCenterPoint = centerPoint table.sort(points, appGetIsLess) return points end function appGetIsLess(a, b) local center = app.pointsCenterPoint if a.x >= 0 and b.x < 0 then return true elseif a.x == 0 and b.x == 0 then return a.y > b.y end …

30
您如何计算一组循环数据的平均值?
我想计算一组循环数据的平均值。例如,从指南针的读数中我可能有几个样本。当然,问题在于如何处理环绕。相同的算法可能对表盘有用。 实际问题更加复杂-统计量在“环绕”的球体或代数空间(例如加性群mod n)中意味着什么。答案可能不是唯一的,例如359度和1度的平均值可以是0度或180度,但从统计学上讲0更好。 对我来说,这是一个真正的编程问题,我试图使它看起来不只是一个数学问题。
147 algorithm  math  geometry 

12
带有SVG弧线路径的圆图
简短的问题:使用SVG路径,我们可以绘制99.99%的圆并显示出来,但是当它是99.99999999%的圆时,该圆就不会显示。如何解决? 以下SVG路径可以绘制99.99%的圆:(在http://jsfiddle.net/DFhUF/1381/上尝试一下,看看是否看到4个圆弧或只有2个圆弧,但是请注意,如果是IE,则为以VML而非SVG呈现,但存在类似问题) M 100 100 a 50 50 0 1 0 0.00001 0 但是当它是一个圆的99.99999999%时,什么都不会显示吗? M 100 100 a 50 50 0 1 0 0.00000001 0 这与100%的圆相同(它仍然是弧,不是,只是一个非常完整的弧) M 100 100 a 50 50 0 1 0 0 0 如何解决?原因是我使用一个函数绘制一定比例的圆弧,并且如果我需要特殊情况下使用圆形函数绘制99.9999%或100%的圆弧,那将是很愚蠢的。 同样,在http://jsfiddle.net/DFhUF/1381/上使用RaphaelJS进行jsfiddle的测试用例 (如果在IE 8上是VML,则即使第二个圆圈也不会显示...您必须将其更改为0.01) 更新: 这是因为我在系统中为得分绘制了圆弧,所以3.3点得到了一个圆的1/3。0.5分半圈,而9.9分分99%。但是,如果我们系统中的分数为9.99,该怎么办?我是否必须检查它是否接近圆的99.999%,并相应地使用一个arc函数或一个circle函数?那分数9.9987呢?使用哪一个?需要知道什么样的分数会映射到“太完整的圆”并切换到圆函数,这是荒谬的,而当它是圆的“某个99.9%”或9.9987分数时,则使用圆弧函数。

18
检测两个矩形相交的算法?
我正在寻找一种算法来检测两个矩形是否相交(一个以任意角度相交,另一个仅以垂直/水平线相交)。 测试一个角是否在另一个ALMOST中是可行的。如果矩形形成十字形,则失败。 避免使用直线的斜率似乎是个好主意,因为直线的斜率需要特殊情况。

8
2个角度之间的最小差异
给定围绕坐标的-PI-> PI范围内的2个角度,它们之间2个角度中的最小角度值是多少? 考虑到PI和-PI之间的差异不是2 PI,而是零。 例: 想象一个圆,有2条线从中心出来,这些线之间有2个角度,它们在内侧形成的角度也称为较小的角度,而在外侧形成的角度也称为较大的角度。将两个角度相加时,将形成一个完整的圆。考虑到每个角度都可以在一定范围内,考虑到翻转,较小的角度值是多少

13
如何判断一个点是在一条线的右边还是左边
我有几点要点。我想将它们分为2个不同的集合。为此,我选择两个点(a和b)并在它们之间画一条假想线。现在,我要使一组中的该行剩余的点和另一组中的该行右边的点。 如何确定给定点z是在左侧还是右侧?我试图计算azb之间的角度-右侧小于180度,左侧大于180度-但是由于ArcCos的定义,计算出的角度始终小于180°。是否存在用于计算大于180°的角度的公式(或用于选择右侧或左侧的任何其他公式)?
130 c#  math  geometry  convex-hull 

16
如何从三个点计算角度?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它当前不接受新的答案或互动。 可以说你有这个: P1 = (x=2, y=50) P2 = (x=9, y=40) P3 = (x=5, y=20) 假设这P1是一个圆的中心。总是一样的。我想要由P2和构成P3的角度,换句话说就是与相邻的角度P1。内角要精确。它始终是锐角,因此小于-90度。 我以为:那是简单的几何数学。但是我现在已经寻找了大约6个小时的公式,却只发现人们谈论复杂的NASA东西,例如arccos和矢量标量产品。我的头好像在冰箱里。 这里的一些数学大师认为这是一个简单的问题?我认为这里的编程语言并不重要,但是对于那些认为确实重要的人来说:java和Objective-c。我都需要它,但是还没有为它们添加标签。
120 algorithm  math  geometry 

15
在球体上平均分配n个点
我需要一种算法,该算法可以使我在球体上的位置保持N个点(可能少于20个),并模糊地将它们分散开。不需要“完美”,但是我只需要它,所以它们都不会聚在一起。 这个问题提供了很好的代码,但是我找不到统一的方法,因为这似乎是100%随机的。 推荐的这篇博客文章有两种方法可以输入球体上的点数,但是Saff和Kuijlaars算法恰好是我可以转录的伪代码,而我发现的代码示例包含“ node [k]”,而我无法看到解释并破坏了这种可能性。第二个博客示例是“黄金分割螺旋”,它给了我奇怪的,成堆的结果,但没有明确的方法来定义恒定半径。 这种算法从这个问题好像它可能工作,但我不能拼凑那是什么网页上成伪代码或任何东西。 我遇到的其他一些问题线程涉及随机均匀分布,这增加了我不关心的复杂程度。我很抱歉这是一个愚蠢的问题,但是我想表明我确实看上去很努力,但仍然表现不佳。 因此,我要寻找的是简单的伪代码,以将N个点均匀地分布在一个单位球体上,该点以球坐标或笛卡尔坐标返回。如果它甚至可以通过一点随机分布就更好了(想想围绕一颗恒星的行星,适当散开,但还有回旋余地)。

6
使用纬度/经度和公里距离的简单计算?
我可以做一个简单的计算,将km转换为一个值,将该值添加到lat或lon float中,以计算搜索的边界框吗?它不需要完全准确。 例如:如果给了我英国伦敦的经纬度(51.5001524,-0.1262362),我想计算从那一点开始东/西25公里的经纬度,以及那个北/南25公里的经度。点,我需要怎么做才能将25公里转换为十进制以添加到上述值? 我正在寻找一般的经验法则,即:1km == +/- 0.XXX 编辑: 我对“ lat lon”的原始搜索未返回以下结果: 如何计算给定经纬度位置的边界框? 接受的答案似乎足以满足我的要求。


14
重叠圆的合并区域
我最近遇到一个问题,我有四个圆(中点和半径),必须计算这些圆的并集面积。 示例图片: 对于两个圈子来说,这很容易 我可以计算出不在三角形内的每个圆面积的分数,然后计算三角形的面积。 但是,当有两个以上的圆圈时,是否可以使用一种聪明的算法?
107 algorithm  geometry  area 

6
画圆的动画
我正在寻找一种动画绘制圆的方法。我已经能够创建圆,但是将其全部绘制在一起。 这是我的CircleView课: import UIKit class CircleView: UIView { override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = UIColor.clearColor() } required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func drawRect(rect: CGRect) { // Get the Graphics Context var context = UIGraphicsGetCurrentContext(); // Set the circle outerline-width CGContextSetLineWidth(context, 5.0); …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.