Articles of 圆

如何在两个角度之间绘制弧线?

我想在两个特定角度之间画一条弧线。 例如,“绘制一个0到90度之间的角度”,它将只绘制该部分的圆,而忽略其余部分。

使用SAT lib函数确定节点js中圆形的子弹/粒子reflection

我可以看到其他例子中的计算应该如何进行,例如: 如何从圆形边缘反弹一个2d点的粒子 。 但是我可以在游戏循环中使用一些帮助来获得我的input,这些循环是每个游戏循环打勾进行/移动子弹,然后检测并处理冲突。 我试图模拟一个示例nodejs脚本使用SAT lib http://requirebin.com/?gist=4a5c208dc39d3c3be262abb05fa791a3 ..与控制台日志跟踪几个variables,包括输出目标向量。 我的问题主要在于了解如何使用SAT(vector)函数(如dot()或reflect()来生成reflection) https://github.com/jriecken/sat-js#classes 即使伪代码将帮助我明白,确定reflection点所需的操作(不只是角度,但子弹新的目标向量)给予我的子弹x,y位置碰撞和圆形墙的input。

这个圆形碰撞检测math如何工作?

我正在通过wildbunny博客了解碰撞检测。 我很困惑他谈论的媒介如何发挥作用。 以下是迷惑我的部分: p = || AB || – (r1 + r2) 两个球体穿透距离p。 我们也希望渗透vector,以便我们能够在发现渗透之后纠正渗透。 这是将两个圆圈都移动到刚接触的位置,纠正渗透的向量。 重要的是,它不仅仅是一个向量,它是唯一一个通过移动最小量来纠正渗透的向量。 这一点很重要,因为我们只是想纠正错误,而不是在纠正时移动得太多,或者太less。 N =(AB)/ || AB || P = N * p 在这里,我们已经计算了两个中心之间的归一化向量N和穿透向量P乘以我们的单位方向的渗透距离。 我知道p是圈子穿透的距离,但是我不明白N和P是什么。 在我看来, N只是由A点和B点(AB)形成的右三点坐标,然后除以三角形的斜边或A和B之间的距离(|| AB ||) 。 这有什么意义? 另外,什么是渗透向量? 在我看来,这似乎是其中一个圈子可能会发挥作用的运动。

检测帧之间发生的碰撞,移动,旋转圈之间的切片?

为了检测两个圆之间的碰撞,我们检查它们的中心之间的距离是否小于它们的半径之和。 要检测一个圆的切片(在这种情况下是一半)和一个圆之间的碰撞: 检查圆圈是否碰撞。 找出分割圆的虚段的两个点(中间)。 检查这两个点中的任何一个是否包含在另一个圆内(如果是这样,它与两个切片,红色和蓝色相撞)。 如果不是,计算两个圆之间的角度,并用它来决定圆是从一侧还是另一侧触摸。 有没有什么合理的方法来计算移动的物体? 即,因为帧的离散性质,所以碰撞不会被错过?

2D多圈碰撞响应

我试图实现简单的二维圆形碰撞系统。 有不同半径和速度的圆圈(圆圈越大越慢)。 与堆栈上的所有问题相反,这些圈子根本不反弹。 对于重叠的两个圆圈,碰撞响应没有问题。 我想到了两种方法: 推动圆圈的位移取决于圈半径的比例。 把小圆圈推开,不再碰到大圆圈。 但是,这些方法都不适用于多圈碰撞。 让我们考虑一个简单的例子: 三个圈子正朝着同一点移动,但速度不同: 在下一个框架中它们重叠如下: 然后用这两种方法中的任何一种,最小的一个圆被最大的一个推开: 然后最右边的圆圈将最小的圆圈向右推动,形成一个无限的碰撞循环。 当然,越多的圈子,碰撞解决就越复杂。 此外,我将添加静态墙壁,从而使得碰撞系统更加复杂。 我可以使用什么algorithm使多个碰撞像魅力一样工作? 我猜想所需的效果如下所示: 任何帮助将不胜感激!

如何计算二维圆圈的最大面积/面积?

我在飞机上有一些二维圆圈,每个都有自己的minRadius和maxRadius。 当两个圆碰撞时,它们都会收缩半径,所以圆的实际半径在[minRadius,maxRadius]范围内。 我需要计算每个圆的最大可能半径。 看下面的图像的例子。 目前,我使用以下algorithm来计算每个圆的半径。 我尝试每一步增加每个圆的半径,然后检查并解决是否有任何碰撞。 foreach c in circles: c.radius = c.minRadius; for (int i = 0; i < 10000; ++i) { foreach c in circles: c.radius = c.radius + 1 foreach c in circles: calculate_radius(c) } function calculate_radius(c) collides = find_all_circles_which_radius_is_overlap_with_c() foreach x in collides { x.radius -= somevalue; c.radius -= somevalue; } […]

我怎样才能从定义圆弧的三点中抽出样条?

我在这里查看各种曲线技术的描述,并注意到提到了圆弧。 我想实现这样的东西,但我不太确定使用正确的公式是什么。 我可以很容易地find贝塞尔曲线或厄米曲线的公式,但是当我search圆弧样条曲线或圆弧插值时,我得到了很多超技术文章,这些文章远远超出了我所需要的范围。 我的直觉是我从端点和控制点之间形成的角度来使用这个半径,但是从概念上来说,我仍然有点太摇摆不定,无法猜测一个公式。 对于那些不能跟随链接的人,圆圈数据由圆上的起点和终点给出,以及用于控制角度的控制点。 在给定这三点的情况下,我可以使用什么公式来插值和近似圆弧?

如何在极坐标矩形内绘制圆形扇形

我试图通过在当前可视矩形范围内绘制圆形和环形扇区来优化游戏地图。 解决scheme应覆盖示例graphics中的两种情况(图1和2)。 我有一个图1的版本,它将矩形顶点转换为极坐标,并计算开始/结束角度以及内部和外部半径以便在内部绘制,但当矩形与圆的中心重叠时,这不起作用(图2)。 目前正在使用JavaScript和SVG进行绘图,因此使用这些绘图的例子将是理想的(或者仅仅是JS中的math部分)。 此外,网格中的每个“楔子”都应该分开绘制,因为它们每个都需要引擎作为离散对象来引用。

我如何find相撞的圆圈之间的交叉点?

我想知道是否有两个圆与r1和r2相交,如果是, 他们在哪里 。 有一个简单的解决scheme吗?

如何testing圆和凹多边形是否相交?

我有一个多边形(有时是凸的,但通常是凹的),还有一些不同半径的圆。 我怎样才能找出一个圆是否与多边形相交/重叠? 我可以把我的凹多边形分成凸块。 会有帮助吗?