Tag: 几何

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

我想计算一组循环数据的平均值。 例如,我可能会从指南针的阅读中得到几个样本。 当然问题是如何处理这个概括。 相同的algorithm可能对钟面有用。 实际的问题更复杂 – 统计数据在一个球体上或者在一个代表性的“代替”的代数空间中意味着什么,比如加法群mod n。 答案可能不是唯一的,例如,359度和1度的平均值可能是0度或180度,但统计上0看起来更好。 这是一个真正的编程问题,我试图让它看起来不仅仅是一个math问题。

按顺时针sorting点?

给定一个x,y点的数组,我该如何按顺时针顺序排列这个数组的点(围绕它们的整个平均中心点)? 我的目标是将点传递给线条创build函数,以最终看起来相当“坚固”的东西,尽可能凸出,没有线相交。 对于它的价值,我使用Lua,但任何伪代码将不胜感激。 非常感谢您的帮助! 更新:作为参考,这是基于Ciamej的优秀答案(忽略我的“应用程序”前缀)的Lua代码: 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 ax >= 0 and bx < 0 then return true elseif ax == 0 and bx == 0 then return ay > by end local det = (ax […]

Python / matplotlib:绘制一个3d立方体,一个球体和一个向量?

我用matplotlibsearch如何用尽可能less的指令来绘制东西,但在文档中找不到任何帮助。 我想绘制下面的东西: 以0为边长为2的线框立方体 以“0”为半径为1的“线框”球体 在坐标[0,0,0] 一个vector,在这一点开始,并进入[1,1,1] 怎么做?

超越方程解的精度越来越高

我有一个特定的运动学作为一个更复杂的机器的一部分,需要计算一些非常困难 (更不可能)的物理参数,以适当的准确度来测量我所用的仪器 [运动学] 首先看它是一个简单的1自由度arm(黑色),可以围绕x轴旋转。 它有一个重量,迫使它总是上升,直到它碰到机械终点(angular度a0 )或半径r0一些pipe子(蓝色)。 arm的旋转中心位于y0 。 pipe可以移动到任何y(t)高度。 [用法] 这是用来测量pipe的半径进一步处理。 可以计算半径(通过基本测angular法),这导致在图像底部的等式。 常数a0,y0,z0很难测量(它是在复杂的机械中),所以距离的测量精度最小0.1 mm ,angular度0.1 deg ,甚至是有问题的。 [校准] 所以我决定尝试从机器本身完成的一系列测量(自动校准)中计算这些参数。 所以我有已知半径r0校准pipe。 所有的绿色参数都可以作为常量处理。 现在我把pipe子沿着y轴放置,以尽可能多地覆盖arm的angular度。 可悲的是,范围只有20 degrees (对于当前的机器设置)记住测量预设的y(t) …作为n点数据集的a(t) 。 这给了我n超越方程的系统。 从这里我试着猜测a0,y0,z0记得最好的解决scheme(最接近r0 )的“所有”可能性, [近似于a0,y0,z0] 近似值是基于这个类的: //————————————————————————— class approx { public: double a,aa,a0,a1,da,*e,e0; int i,n; bool done,stop; approx() { a=0.0; aa=0.0; a0=0.0; a1=1.0; da=0.1; e=NULL; e0=NULL; i=0; n=5; done=true; […]

在一个圆圈内(均匀地)生成一个随机点

我需要在半径为R的圆内产生一个均匀的随机点。 我意识到,通过在区间[0 …2π)中select一个均匀的随机angular度,并且在区间(0 … R )中的均匀随机半径,我将以更多点为中心,因为对于两个给定的半径小的半径中的点将比在较大的半径中的点更接近彼此。 我在这里发现了一个博客条目,但我不明白他的推理。 我认为这是正确的,但是我真的很想从他(2 / R 2 )× r以及他如何得出最终解决scheme中得到解释。 关于拒绝抽样:我可以一次又一次地在R × R广场内生成一个随机点,直到我在圆圈内find一个点。 这种方法有一个明显的缺点,即它不能提供终止保证(尽pipe它很可能不会持续很长时间)。

把一个圆柱体变成一个球体而不会夹住两极

我正在努力生成一个由六边形网格制成的星球。 两极是不需要的 – 使这一点更容易。 有没有更好的方法把圆柱体变成一个六angular形或三angular形的球体? 这是所需的步骤: 生成一个六边形的2D平面(ok) 把飞机变成一个气缸(好) 把油缸变成球体/地圈(种类) 对于第二步,我只是使用Sin和Cos将顶点移动到圆形。 对于第3步,现在我只是使用: vertices[i] = vertices[i].normalized * radius; 图像可视化的问题,因为它是目前。 请注意,杆是有意切断的。 红色的部分显示了一个六边形网格的外观。 我将不得不保持大致相同的大小和方向,因为它们被用于游戏和视觉元素。 每个hex都有一个邻居列表,基本上就像一个图。

从一个旋转的矩形计算边界框坐标

我有一个矩形的左上angular的坐标以及它的宽度,高度和旋转从0到180和-0到-180。 我正在尝试获取矩形周围实际框的边界坐标。 计算边界框坐标的简单方法是什么? Min y,max y,min x,max x? A点并不总是在最小范围内,它可以在任何地方。 如果需要,我可以在as3中使用matrix转换工具包。

我如何计算2D多边形的面积?

假设二维空间中的一系列不自相交的点,确定所得多边形面积的有效方法是什么? 作为一个侧面说明,这不是作业,我不是在寻找代码。 我正在寻找一个我可以用来实现我自己的方法的描述。 我有关于从点列表中拉出一系列三angular形的想法,但是我知道有一些关于凸多边形和凹多边形的边缘情况,我可能不会理解。

如何确定多边形点列表是否按顺时针顺序?

有一个点列表,我怎么find,如果他们顺时针顺序? 例如: point[0] = (5,0) point[1] = (6,4) point[2] = (4,5) point[3] = (1,5) point[4] = (1,0) 会说这是逆时针(某些人逆时针)。

如何find一个线和一个矩形的交点?

我有一条从A点到B点的路线; 我有两个点(x,y)。 我也有一个以B为中心的矩形和矩形的宽度和高度。 我需要find与矩形相交的线上的点。 有没有一个公式给我(x,y)那个点?