Tag: 几何

用等距顶点制作一个球体

为了检查碰撞的目的,我试图做一个球形的射线爆发,但是根据每个射线在什么地方或什么地方击中了具体的相互作用。 因此,我为什么使用光线,而不是像OverlapSphere这样简单的东西。 我正在寻找如何制作一个球体的原因是因为我可以对我的光线使用相同的math,让它们到达球体所在的顶点。 但是我所能find的制造球体的方法都是靠近极点,这很有意义,因为它很容易做到。 但是,正如你可以想象的那样,它对我目前的项目没有什么用处。 TL; DR:如何制作等距顶点的球体? 如果它不是完全等距的话,它只需要非常接近。 如果发生这种情况,那么如果可以给出多less区别,以及在哪里适用,那将是非常好的。 额外的笔记:我已经看过这个和这个 ,但math已经超出了我的头,所以我一直在寻找的东西可能会一直在我面前凝视着我。

计算两条线之间的angular度而不必计算斜率? (JAVA)

我有两条线:L1和L2。 我想计算两条线之间的angular度。 L1的点为{(x1, y1), (x2, y2)} ,L2的点为{(x3, y3), (x4, y4)} 。 我怎样才能计算这两条线之间形成的angular度,而不必计算斜率? 我现在遇到的问题是,有时候我有水平线(x轴线),下面的公式失败(除以零例外): arctan((m1 – m2) / (1 – (m1 * m2))) 其中m1和m2分别是线1和线2的斜率。 是否有一个公式/algorithm可以计算两条线之间的angular度,而不会得到零除exception? 任何帮助将不胜感激。 这是我的代码片段: // Calculates the angle formed between two lines public static double angleBetween2Lines(Line2D line1, Line2D line2) { double slope1 = line1.getY1() – line1.getY2() / line1.getX1() – line1.getX2(); double slope2 = […]

实施射线拾取

我有一个使用DirectX和OpenGL的渲染器和一个3D场景。 视口和窗口具有相同的尺寸。 我如何实现以平台独立的方式select给定的鼠标坐标x和y?

用for循环创build一个三angular形

我似乎无法find这个答案 – 我需要使用for循环绘制一个简单的三angular形。 * *** ***** ******* ********* 我可以做一个三angular形,但我不知道如何添加到我目前的循环,形成一个完整的三angular形。 * ** *** **** ***** for (int i=0; i<6; i++) { for (int j=0; j<i; j++) { System.out.print("*"); } System.out.println(""); } 谢谢-

在球体上均匀分布n个点

我需要一个algorithm,可以让我围绕一个球体的位置N点(可能less于20),模糊地扩散出去。 没有必要“完美”,但我只是需要它,所以没有一个捆绑在一起。 这个问题提供了很好的代码,但是我找不到一个统一的方法,因为这看起来是100%随机的。 这个博客文章推荐有两种方法允许input球体上的点数,但是Saff和Kuijlaarsalgorithm正好在我能够转录的伪代码中 ,并且我find的代码示例包含了“node [k]”,我不能看到解释和破坏的可能性。 第二个博客的例子是黄金分割螺旋,它给了我奇怪的结果,没有明确的方法来定义一个恒定的半径。 从这个问题的 algorithm似乎可能工作,但我不能拼凑在那个页面上的东西到psuedocode或任何东西。 我遇到的其他一些问题的线程说随机均匀分布,这增加了我不关心的复杂程度。 我很抱歉,这是一个如此愚蠢的问题,但我想表明,我真的看上去很努力,但仍然不足。 所以,我正在寻找的是简单的伪代码来均匀分布单位球体周围的N个点,要么返回球面坐标或笛卡尔坐标。 甚至更好,如果它甚至可以散布一点随机(认为行星围绕一个明星,体面散开,但有余地余地)。

如何组合复杂的多边形?

给定两个多边形: POLYGON((1 0, 1 8, 6 4, 1 0)) POLYGON((4 1, 3 5, 4 9, 9 5, 4 1),(4 5, 5 7, 6 7, 4 4, 4 5)) 我怎样才能计算联合(组合多边形)? 替代文字http://blogs.msdn.com/blogfiles/davidlean/WindowsLiveWriter/SQL2008SpatialSamplesPartn2onnGeometricS_C45F/STUnion_2.png 戴夫的例子使用SQL服务器来产生联盟,但我需要在代码中完成相同。 我正在寻找一个math公式或代码示例的任何语言,公开实际的math。 我试图制作将国家dynamic地结合到地区的地图。 我在这里问了一个相关的问题: 分组地理形状

如何确定多边形是复杂的/凸的/非凸的?

从XFillPolygon的手册页 ·如果形状是复杂的,path可以自相交。 请注意,path中的重合点不被视为自交。 ·如果形状为凸,则对于多边形内的每对点,连接它们的线段不会与path相交。 如果客户知道,指定凸面可以提高性能。 如果将凸指定为非凸的path,则graphics结果是不确定的。 ·如果形状为非凸,path不自相交,但形状不是完全凸的。 如果客户端知道,指定Nonconvex而不是Complex可能会提高性能。 如果您为自相交path指定Nonconvex,则graphics结果未定义。 我遇到了填充XFillPolygon性能问题,因为手册页build议我要采取的第一步是指定Polygon的正确形状(我目前正在使用Complex来保证安全)。 是否有一个有效的algorithm来确定多边形(由一系列坐标定义)是凸的,非凸的还是复杂的?

什么是find重叠矩形区域的高效algorithm

我的情况 input:一组矩形 每个矩形包含4个双打,如下所示:(x0,y0,x1,y1) 它们不是以任何angular度“旋转”,它们都是相对于屏幕“上/下”和“左/右”的“普通”矩形 他们被随机放置 – 他们可能在边缘触摸,重叠,或没有任何接触 我将有几百个矩形 这是在C#中实现的 我需要find 由它们重叠形成的区域 – canvas中多于一个矩形“覆盖”的所有区域(例如,具有两个矩形,这将是交叉点) 我不需要重叠的几何形状 – 只是区域(例如:4平方英寸) 重叠不应该被多次计算 – 例如,想像3个尺寸和位置相同的交叉 – 它们彼此重叠 – 这个区域应该被计算一次(而不是三次) 例 下面的图片包含三个矩形:A,B,C A和B重叠(如虚线所示) B和C重叠(如虚线所示) 我正在寻找的是显示破折号的地方 – AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA————–BBB AAAAAAAAAAAAAAAA————–BBB AAAAAAAAAAAAAAAA————–BBB AAAAAAAAAAAAAAAA————–BBB BBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBB BBBBBB———–CCCCCCCC BBBBBB———–CCCCCCCC BBBBBB———–CCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCC

如何计算线段的法向量?

假设我有一条从(x1,y1)到(x2,y2)的线段。 如何计算垂直于线的法向量? 我可以在3D中find很多有关这样的飞机的东西,但没有2D的东西。 请在math上轻松一些(链接到工作的例子,图表或algorithm是受欢迎的),我是一个程序员,而不是我是一个math家;)

寻找一个点是否在矩形内

我想找出一个点是否在矩形内。 矩形可以以任何方式定向,不需要轴alignment。 我能想到的一种方法是旋转矩形和点坐标以使矩形轴alignment,然后通过简单地testing点的坐标是否位于矩形的坐标之内。 上述方法需要旋转,因此需要浮点操作。 有没有其他有效的方法来做到这一点?