标签: geometry

在圆内生成随机点(均匀)

我需要在半径为R的圆内生成一个均匀的随机点.

我意识到,通过在区间[0 ...2π)中选择一个均匀的随机角度,并且在区间(0 ... R)中均匀随机半径,我会得到更多的点朝向中心,因为两个给定半径,较小半径中的点将比较大半径中的点更接近彼此.

在这里发现了一篇关于此的博客文章,但我不理解他的推理.我想它是正确的,但我真的想从他得到的地方(2/R 2r以及他如何得出最终解决方案中理解.


更新:发布此问题7年后,我仍然没有收到有关平方根算法背后数学的实际问题的满意答案.所以我花了一天时间自己写答案.链接到我的答案.

random math geometry probability

194
推荐指数
10
解决办法
12万
查看次数

圆线段碰撞检测算法?

我有一条从A到B的线和一条位于C的圆,半径为R.

图片

用于检查线是否与圆相交的好算法是什么?它沿圆圈边缘的坐标发生了什么?

algorithm math geometry collision-detection line

191
推荐指数
8
解决办法
14万
查看次数

用于膨胀/收缩(抵消,缓冲)多边形的算法

我如何"膨胀"多边形?也就是说,我想做类似的事情:

替代文字

要求是新的(膨胀的)多边形的边/点都与旧的(原始)多边形处于相同的恒定距离(在示例图片上它们不是,因为那时它必须使用弧来填充顶点,但是让我们暂时忘掉它;)).

我正在寻找的数学术语实际上是向内/向外多边形的偏离.+1指向balint指出这一点.替代命名是多边形缓冲.

我的搜索结果:

以下是一些链接:

algorithm geometry polygon buffering computational-geometry

187
推荐指数
8
解决办法
8万
查看次数

圆 - 矩形碰撞检测(交叉)

如何判断圆形和矩形在2D欧几里德空间中是否相交?(即经典2D几何)

geometry collision-detection

181
推荐指数
6
解决办法
19万
查看次数

创建圆形div比使用图像更简单吗?

我想知道是否有一种更简单的方法来创建循环div而不是我现在正在做的事情.

目前,我只是为每个不同的大小制作一个图像,但这样做很烦人.

无论如何使用CSS来制作圆形的div,我可以指定半径?

html css geometry css-shapes

175
推荐指数
5
解决办法
37万
查看次数

如何计算线段的法向量?

假设我有一个从(x1,y1)到(x2,y2)的线段.如何计算垂直于直线的法向量?

我可以找到很多关于3D平面飞行的东西,但没有2D东西.

请轻松学习数学(欢迎链接到工作示例,图表或算法),我是一名程序员而不是我是一名数学家;)

math geometry vector

169
推荐指数
4
解决办法
19万
查看次数

按顺时针顺序排序点?

给定一个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

    local det = (a.x - center.x) * (b.y - center.y) - (b.x - center.x) * (a.y - center.y)
    if det < 0 then return true
    elseif det > 0 then …
Run Code Online (Sandbox Code Playgroud)

algorithm math lua geometry computational-geometry

148
推荐指数
3
解决办法
7万
查看次数

如何用Python中的空心圆做散点图?

在Python中,使用Matplotlib,如何绘制带有空心圆的散点图?目标是在已经绘制的一些彩色圆盘周围绘制空心圆圈scatter(),以便突出显示它们,理想情况下无需重绘彩色圆圈.

我试过facecolors=None,但没有用.

python geometry scatter matplotlib scatter-plot

143
推荐指数
5
解决办法
18万
查看次数

如何计算一组循环数据的平均值?

我想计算一组循环数据的平均值.例如,我可能会从阅读指南中获得几个样本.问题当然是如何处理环绕.相同的算法可能对时钟表有用.

实际问题更复杂 - 统计在球体上或在"包裹"的代数空间中意味着什么,例如添加剂组mod n.答案可能不是唯一的,例如359度和1度的平均值可能是0度或180度,但统计上0看起来更好.

这对我来说是一个真正的编程问题,我试图让它看起来不像是一个数学问题.

algorithm math geometry

141
推荐指数
9
解决办法
9万
查看次数

检测两个矩形交叉的算法?

我正在寻找一种算法来检测两个矩形是否相交(一个是任意角度,另一个只有垂直/水平线).

测试一个角落是否在另一个ALMOST中.如果矩形形成十字形状,则失败.

避免使用线条的斜率似乎是一个好主意,这需要垂直线条的特殊情况.

algorithm math graphics geometry separating-axis-theorem

140
推荐指数
2
解决办法
9万
查看次数