Geometry 垂直线(横向/纵向)

我试图实现所提出的关于在给定的垂直距离上找到一个点的方程。不幸的是,我收到的线不是直的。这是因为我将纵横坐标与常规x/y坐标混合,还是我做错了什么 double distPoint = 0.02; double latDiff = temp2.Latitude - temp.Latitude; double longDiff = temp2.Longitude - temp.Longitude; double length = Math.Sqrt(latDiff * latDiff

Geometry 船体和箱体之间的最近距离

找到凸面外壳和轴对齐长方体之间最近距离的最佳方法是什么?我所说的最近距离是指船体和箱体上彼此最接近的一对点。我们可以假设我们知道船体和箱子不相交 外壳由面和顶点组成,如果需要,我可以对这些面进行三角剖分。对于盒子(或任何其他凸面对象)内的外壳: 如果它们不相交,则外壳中最近的点将是外壳的顶点,而不是面的中间 简单地遍历外壳的所有顶点并计算到长方体每一侧的距离,就可以找到一对点(外壳顶点+长方体面上的点)。请注意,如果外壳的一个面与长方体的一个面平行,则在同一距离处将获得多个面对 盒子外的外壳:

Geometry 光线-球体相交:处理角点情况

我正在努力在2d中实现一个健壮的光线-球体相交例程。我将一个相当拥挤的函数拼凑在一起,由于它在GPU上运行,所以无法正确调试。我的灵感来自: 和。我不知道应该在哪里查找错误。我错过了什么明显的东西吗?由于我对实际的圆段碰撞感兴趣,所以我检查圆是否包围直线的情况作为交点返回 以下是相关的代码片段: bool CircleSegmentIntersection2d(float2 x0, float2 x1, float2 center, float r) { float2 d = x1-x0; f

Geometry 几何中值:Weiszfeld'有Java实现吗;s算法?

我试图计算2/3D点列表的几何中值。我已经尝试了不同的实现,但我仍然在寻找更好的结果 我想知道是否有一个用于Weiszfeld算法的Java实现,这样我可以节省一些时间。我基于本文对Weiszfeld方法进行了Java实现: 回购协议在github上:。pdf链接已失效。@SinanKozak这看起来与第7.3节类似,但我还没有足够详细地阅读它以完全确定。

Geometry 画一个圆心和两个其他点的小圆弧

有人知道如何画一个圆,小圆弧,给定圆心和位于圆上的另外两个点吗 我想把像素直接画到屏幕上,最好不用计算角度 我正在使用SDL和C,但如果使用不同的语言,学习代码可能没问题 谢谢。圆上的所有点到中心的距离都相等 如果你知道圆上的两点,你可以计算这个距离 假设您有笛卡尔坐标,对于已知点之间的每个x或y值,计算其他值,使点与中心的距离相等,并绘制这些点 我认为这在概念上是最简单的方法,但不是最有效的。最后我做了与您在这里解释的类似的事情,只针对从弧的开始到弧的结束的上、下、左、右和四个对角线像素,将像

Geometry 射线与椭球体相交精度的提高

我需要提高我的一个函数的精度,该函数计算单个光线和轴对齐椭球体之间的交点 这是我的大气散射着色器的核心功能。旧的原始着色器处于浮动状态,对于正常的渲染效果很好,但在添加缩放后,我发现距离相对较小时,精度会降低。在浮标上,地球的可用距离仅为0.005 AU(天文单位)。因此,我尝试将关键函数移植到double,这很有帮助,因此现在可用距离约为1.0AU(带有小瑕疵) 这是片段着色器内部函数的double版本(旧式源代码使用不推荐的东西!!!) 在此之前: view_depth_l0=flo

Geometry 几何学矩形中的点,但只有从点到角的角度是已知的。得到三角形的角

!![形状及角度样本][1] 抱歉,无法直接包含任务图片(需要至少10个声誉才能发布图片,只有1个)” 任务图片: 一个给定的不规则矩形,在一个点内(不在中心)。 我们知道: 矩形角:A=90°,B=76°,C=104°,D=90° 矩形尺寸:AB=204mm,BC=154mm,CD=165.5mm,DA=148.5mm 点x,它位于矩形内 点x与矩形角的“see”角度:xAB=110°,xDA=79°,xCD=94°,xBC=77° 计算内容: 三角形形成角度:Ab、Ba、Bc、Cb、C

Geometry 有一个扭曲三角棱镜的两个三角形的坐标,我怎么知道一个点是否在它里面?

这里有一些扭曲三角形棱镜的例子 我想知道一个移动的三角形是否会碰到某个点。这就是为什么我需要解决这个问题 其思想是,一个具有随机坐标的三角形成为另一个顶点都在其间移动的随机三角形 相关:我的一个学生用Mathematica制作了这个小动画。 它显示了一个棱镜到Schönhardt多面体的扭曲。 看看它的意义。 确定一个特定点是否在多面体内部是很容易的 但它是否在特定的平滑扭曲内(如在图像中),取决于扭曲的细节(速率)。让底部三角形位于平面z=0,它的旋转角度为0,顶部三角形的旋转角度为Fi

Geometry 在圆上寻找切点坐标?

鉴于 x1,y1, D R 和x2,y2 如何找到x3,y3和x4,y4?构造两个方程 首先,切向向量P31=(x3-x1,y3-y1)应该垂直于半径向量P32=(x3-x2,y3-y2),所以这些向量的点积为零 第二,利用毕达哥拉斯定理通过d和r表示P31的平方长度 然后求解两个方程组,得到两个切点的两个解 请注意,这项任务与编程几乎没有关系——它只是数学。我投票结束这个问题,因为它与三角学有关,而不是编程或软件开发。

Geometry 根据AutoCAD图表中指定的尺寸缩放长度

这是我上一篇文章的后续文章 我使用以下代码创建了一个二维几何体 输出: 实际尺寸与文字中显示的值(黄色)不匹配。 例如,62是显示的值,54.0833是实际尺寸。我想将实际长度重新缩放到显示的值,以黄色显示在线条上。 我知道上面提供的输入中显示的坐标必须改变。第一个坐标可能是固定的,随后的坐标可能会移动 任何关于如何做到这一点的建议都会非常有用 编辑:在我上一篇文章的答案中提供的解决方案使用从roundupto函数获得的输出,仅缩放以黄色显示的维度。发布此问题的目的是征求关于缩放实际长度的建议

Geometry 不同单位的距离度量

我正在尝试对雷达数据库进行聚类。雷达的观测值以方位角和距离表示。出于处理速度的原因,我不想将这些极坐标数据转换为笛卡尔坐标系 正常的欧几里德距离度量在x和y方向上需要相同的单位。我需要找到方位和距离方向上的距离。基本上,你可以想象欧几里德距离度量在一个圆中工作,而我的解应该在一个椭圆中工作 这个问题的一个简单解决方案是附在红色示例中的图像。 我从中心点取两个方向的距离 我正在寻找一个更高级的解决方案,比如蓝色的例子,我在椭圆搜索中找到了所有的点 编辑: 我在数学论坛上问了一个不同的问题,也许这有

Geometry 如何计算超椭圆切片的面积?

假设我有一个给定宽度、高度和偏心率n的超椭圆。我想创建x个高度相等的水平切片。如何计算每个切片的面积 我甚至不需要我正在处理的特定项目的精确值,只需要近似值。您可以对超椭圆切片的面积进行积分,并在需要的范围内对其进行数值积分,而不是0..a 我认为对于近似值,简单的s就足够了: 对于切片间隔y0..y1,选择子间隔n的数量,步骤h=y1-y0/n,并计算点y0+h/2+h*i,i=0..n-1中的函数值y而不是x,然后将这些值相加并乘以y1-y0。谢谢!这正是我要找的!我不知道我的数学技能是否足

Geometry 用等半径圆覆盖任意区域

如果一个算法覆盖一个半径相等的圆的任意区域,它将如何工作 圆的半径以及面积的大小和形状是任意给定的。该区域应尽可能少地覆盖圆圈。圆圈可能重叠 是否有一种算法可以处理这个问题?在不了解更多约束条件的情况下,我建议对平面进行规则覆盖,使用与六边形瓷砖的规则六边形对应的圆盘。然后保持所有磁盘与形状相交。希望我正确理解了您的问题 可以证明,使用球体时,球体的六边形紧密堆积(HCP)覆盖了最大体积。因此,我假设使用圆进行HCP也会覆盖使用圆的最大面积。用三角形对区域进行细分,并在三角形的每个顶点放置一个圆

Geometry 具有给定整数面积和整数边的最小周长矩形

给定一个整数区域A,如何找到矩形的整数边w和h,使得w*h=A和w+h尽可能小?我宁愿算法简单而不是高效(尽管在合理的效率范围内) 实现这一目标的最佳方式是什么 找出A的主要因素,然后以某种方式组合它们,试图平衡w和h?找到两个面积最接近A的边为整数的正方形,然后在它们之间进行插值?还有什么我没想到的方法吗?这是我脑子里想出来的东西 从w=1开始;h=A 然后迭代w,增加它。每次增加w后,只要w*h>A就可以尝试减少h。 此外,还需要某种启发式函数来确定w/h组合的大小。让我们称之为size(x

Geometry 如何使用C#在用户控件上绘制形状文件的几何图形?

我正在尝试编写一个应用程序来可视化.net表单上的shapefile,而不使用任何外部SDK。我已经成功地编写了读取shapefile的代码。现在我无法使用GDI+技巧有效地将几何图形绘制到用户控件 有什么想法吗?您应该使用用户控件(通常是控件)的图形对象在其上绘制点、线等。如果可以从shapefile获取点信息,这将非常有用。使用以下链接使其工作。 和 这是一个例子: Graphics g = this.CreateGraphics(); g.DrawPolygon( ... ) ; 您能

Geometry 使用delphi检查位置并合并多边形

在我的应用程序中,我有2个或更多多边形,一个多边形可以在其他多边形的内部或外部(全部在内部或全部在外部)。 我必须这样做: 检查一个多边形是否在其他多边形的内部(所有多边形都在内部,没有交点) 如果点1为真,“合并多边形” 要理解我的“合并多边形”,请参见图片: 如你所见,有两个多边形:A-B-C-D-A和1-2-3-1,我需要找到两个点(一个点用于A-B-C-D-A,一个点用于1-2-3-1),然后连接两条线,新线不能与多边形线相交 对于这类问题,有没有一种理论可以更快地找到最佳解决方案?边

Geometry 以给定距离分隔的圆上的点

首先,我不是在寻找围绕一个圆均匀分布的点,我知道这已经被回答了很多次了。相反,我在一个圆上有一个点,我需要找到另一个离它一定距离的点 下面是一个例子: 距离可以是两点之间的距离(黑色虚线),也可以是两点之间的周长(蓝色线),只要是最简单的(精度不是很重要) 我知道以下变量: (绿点x,y) d r (中心点x,y) 那么我怎样才能找到其中一个红点呢?所以,基本上你想要得到两个圆的交点: 大的(蓝点,半径=R) 一个小的(绿点,半径=D) (请原谅我惊人的绘画技巧:P) 起初我试图自己解决

Geometry 两个同心轮廓之间的距离

如何求球面上两个同心轮廓之间的平均距离? 我有同心轮廓,在球体的表面上分隔区域。 因此,如果我们有每个轮廓的顶点信息(以lat-long为单位),那么如何找到垂直距离,从内轮廓上的顶点到外轮廓弧的“相关”部分。如果需要两个轮廓之间的平均距离,那么我认为计算两个轮廓之间的总面积并将其除以轮廓长度的一半是有意义的 等高线下的面积可以计算为(定向的)球面三角形的总和,然后从较大的面积中减去较小的面积。谢谢,我问的上下文中确实回答了这个问题。但是,你能建议我们如何将顶点从内轮廓连接到外轮廓,然后导出距离

Geometry 单面4D及更高尺寸的分离轴试验

我试图确定单纯形复合体中的两个单纯形是否以适当的方式相交,即它们在单个顶点、边或面对面相交 为了达到这个目的,我试着看两个单形的面是否适当相交。我尝试使用分离轴测试来检查n-单纯形的面,即(n-1)-单纯形,是否可被n-D空间中的超平面分离。例如,我想检查两个四面体(3-单纯形)是否在4D中相交 我试图概括David Ebery在“3D中凸多边形的分离”一节中的一个解释,因为这涉及到n-D空间中(n-1)单纯形的分离。我无法理解如何构造所有潜在的分离轴方向,在那里建议 潜在轴的选择包括: 垂直于

Geometry 从点到分段直线的最短距离

我有一条在2D中有80个点的分段线和一个不在这条线上的点p(X/Y) 我需要知道点p'在这条线上的什么位置,它与点p的距离最短 有没有一个简单的计算方法 编辑: 输入文件: str(coords) 'data.frame': 80 obs. of 2 variables: $ x: num 2140 2162 2169 2167 2158 ... $ y: num 1466 1437 1412 1390 1369 ... str(point) 'data.frame': 1

Geometry 确定方形单元是否位于多边形内

例如,我希望多边形#14内部或部分内部的网格单元(正方形)与#14相关联。是否有一种算法可以有效地计算正方形是否位于多边形内部 我有组成多边形的边的坐标 如果我答对了,这是JavaScript中的一个实现,它获取一组二维点(称为站点),并返回一个结构,其中包含该点的计算值的数据。它返回名为单元格的列表中的多边形。它似乎是用来测量的。如果这是真的,我们知道多边形总是凸的(参见中的“形式定义”一节) 现在,以下是解决此问题的选项(很难简单): 1。多边形剪裁: 为正方形形成一个多边形 所有的细胞 在

Geometry 有没有一种好方法可以在地图上自动创建镶嵌六边形以可视化六边形?

Tableau的几个版本之前引入了HexBin函数,允许地理信息(或者,实际上,任何按x-y坐标分组的信息)以相同大小的六边形单位分组在一起。这在创建基础信息在地理上分布不均匀的地图时非常有用 六边形的中心点可以直接绘制为点地图,但这不如实际绘制六边形平铺在平面上的地图令人满意。一些博主建议使用形状而不是点来创建类似预期结果的东西。例如,使用六角箱子,但使用非六角形状打印。建议使用自定义六边形形状,但它们不会镶嵌,并且在hexbin比例变化时管理它们(相同的比例并不适用于所有情况)令人恼火 那么

Geometry 在Div元素中放置画布

我试图在itext 7中创建一个圆圈,然后将此圆圈放置在文档中需要的任何位置 文档是使用divs布局的,我使用PdfCanvas创建了一个圆圈 下面是我试图实现的一个片段,很可能有更好的方法: PdfDocument pdfDoc = new PdfDocument(writer); Document doc = new Document(pdfDoc); PdfPage pdfPage = pdfDoc.addNewPage(); Div div = new Div();

Geometry 有没有一个简单的算法可以找到几个圆的包络线?

给定二维表面上的许多点和这些点的半径,我可以很容易地为它们画圆。我需要的是一个算法,只画信封(我要找的是正确的词?)或这些组合圆的外边界。此外,第二组圆可以“侵入”这些圆,从而形成一种“边界” 您可以分两步绘制 1) 使用以下方法绘制轮廓:对于每个点,使用您最喜欢的圆绘制方法绘制一个圆,但在绘制像素之前,请确保它不包含在任何其他圆内。对每一点都这样做,你就会得到你的提纲 2) 使用以下方法绘制不同集合之间的边界:对于不同集合中的每对点,计算圆的两个交点。如果存在交点,则可以将边界绘制为连接这两点

Geometry 如何测量一组线段是否更“精确”;“曲线”;比另一个好?

是否有任何快速算法可以为一组相互连接的线段生成“曲线分数” 例如,在下图中: 与(b)相比,线段(a)应更少“弯曲”。我找到了一个解决方案我用Python编写了算法,可以问任何问题 我不确定它是否一直有效 我正在计算每个段之间的角度,并求其绝对值之和。 以下是完整的代码: import matplotlib.pyplot as plt import numpy as np lineA_x = [3, 1, 2, 4] lineA_y = [6, 4, 2, 1] lineB_x = [

Geometry 线段圆交点

我试图确定线段与圆相交的点。例如,给定P0和P3之间的任何点(并且假设您知道半径),确定P3的最简单方法是什么 一般来说 找出P0和P1之间的角度 在距离r处从P0以该角度画一条线,这将得到P3 在伪代码中 theta = atan2(P1.y-P0.y, P1.x-P0.x) P3.x = P0.x + r * cos(theta) P3.y = P0.y + r * sin(theta) 你有一个方程组。圆的定义为:x^2+y^2=r^2。该行由y=y0+[(y1-y0)/(x1-x0

Geometry 二维曲线逼近

以下是我想做的事情(最好使用Matlab): 基本上,我有几辆车在十字路口行驶的痕迹。每一个都有噪声,所以我想取所有测量值的平均值,以便更好地近似真实路线。换句话说,我正在寻找一种近似曲线的方法,该曲线与所有测量轨迹的距离最小(在最小二乘意义上) 乍一看,这与CurveFitting工具箱的spap2实现的功能非常相似(最小二乘近似中的一个很好的示例)。 但是这个算法有一些主要的缺点:它假设一个函数(每个x正好有一个y(x)),但我想要的是一条二维曲线(一个x可能有几个y(x))。当汽车以超过9

Geometry 检测点击形状游戏

因此,我尝试通过制作两个形状来检测碰撞,但其中存在某种错误,我想知道是否有更简单的方法。这就是我所尝试的: cursorSurface = pygame.Surface((0,0)) cursor = pygame.draw.rect(cursorSurface, (0,0,0),(mouseX,mouseY,2,2)) mouse_mask = pygame.mask.from_surface(cursorSurface,255) mouse_rect = cursor

Geometry 将三角形三角化为网格

是否有一种算法可以将可能跨越多个网格元素的三角形划分为多个三角形,其中没有跨越多个网格元素的三角形 我已经包括了一个蹩脚的手画三角形在2x2网格被切成七个较小的三角形 我是这样看的: 您的三角形是三条线闭合的多边形 点的顺序给出了缠绕规则(CW或CCW) 按网格线剪切所有线 但仍然将三角形保留为单个闭合多边形,并且不改变缠绕 将多边形拆分为几行列表 只需将属于同一网格单元的所有线组合在一起,使所有点都位于网格单元的内部或边缘。再也不要换绕组 将线列表转换为闭合多边形 从第一行列表中第一行的方向开

Geometry 如何确定到与切线垂直的圆弧上的点的距离?

从下图中可以看出: 绿色圆圈的半径等于B 黄线与绿色圆圈相切 垂直紫线平行于绿线,垂直于黄线 黄线垂直于绿线和垂直紫线 紫色点位于绿色圆圈边缘的中心 A和B是已知值 我意识到这些约束中有几个重叠,只是想做得更透彻一些。 毕达哥拉斯定理可以提供C的值,只是为了说明我知道我们已经可以确定的东西 确定D的公式/方程式是什么,其中D是相切黄线到圆弧/圆(紫色点处)的垂直距离 更新 用一个我现在可以形象化为John提供的答案和评论的正确表示的解决方案替换以前演示解决方案的尝试 正如您提到的,C是最简

Geometry 在两个屏幕之间转换点

我有大量的点,我想在脚本中从一个屏幕/监视器转换到另一个屏幕/监视器 屏幕A-2880x1800分辨率 屏幕B-1280x1024分辨率 •黑匣子:屏幕/监视器。 •绿色框:屏幕的一部分,其中所有点将从C(a)转换为C(b) 绿色框是两个屏幕上宽高比为16:9的视频馈送。我不确定这个绿框是否重要,但我把它包括进来是为了展示我在做什么 到目前为止,我已经尝试了以下方法,这似乎可以很好地转换x值: Rectangle Old NW coordinate - (X0_Old, Y0_Old) SE

Geometry 如果给定其他三个顶点,如何计算四面体的第四个顶点?

我想计算一个正四面体的第四个顶点。我有坐标 {0,0,Sqrt[2/3]-1/(2 Sqrt[6])},{-(1/(2 Sqrt[3]),-(1/2),-(1/(2]) Sqrt[6])}和{-(1/(2 Sqrt[3]),1/2,-(1/(2 Sqrt[6])}的组合 有人能帮忙吗?找到脸的中心 cx = (x1 + x2 + x3)/3 and similar for y,z 得到两个边向量 e2x = x2 - x1 e2y = y2 - y1 e2z = z2 - z1 e3x = x

Geometry 在给定Voronoi图的点集和Delaunay三角剖分的情况下,如何导出Voronoi图?

我正在做一个游戏,我创建了一个随机的省份地图(洛杉矶风险或外交)。为了创建地图,我首先生成一系列半随机点,然后计算这些点的Delaunay三角剖分 完成后,我现在希望创建一个点的Voronoi图,作为省边界的起点。我在这一点上的数据(并非双关语)由原始点系列和Delaunay三角形集合组成 我在网上看到了很多这样做的方法,但大多数都与Delaunay的起源有关。我很想找到一些不需要集成到Delaunay中的东西,但是可以单独基于数据工作。如果做不到这一点,我会寻找一些相对几何新手可以理解的东西,

Geometry 多点最大扩散

我有一组点(x,y),我需要找出两个距离最远的点之间的距离 找到这个最有效的方法是什么 谢谢好吧,把每一点与每一点进行比较肯定是有效率的 最有效的方法是找到凸壳,即围绕所有点的凸多边形(没有角度>180) 然后,使用对脚对找到船体上最远的点 此处描述的算法: 此算法称为旋转卡钳。

Geometry 从二维字段的索引中获取位置数据

假设我有三个变量(在2D字段上): NumSquares, 窗口大小(X和Y都有此值), 索引 例如,如果NumSquares是8,WindowSize是256,Index是64;从这些变量中获取位置数据的算法看起来如何?我假设“位置数据”是指网格上的坐标。索引是指在线性化阵列中,使用公式X+width*Y计算的磁贴位置。然后: X = index % width Y = index / width 我不确定您使用的是哪种语言,所以为了确保:%是模,/在这个上下文中是整数除法,我假设“位置数据

Geometry 给定两个坐标的三角形中的第三点

我的数学不好,我只需要有人给我指出正确的方向 Latitude Longitude N 36° 13.488' W 095° 54.295' N 36° 13.488' W 095° 53.805' 假设所有三个都位于同一标高的平面上。 假设地球的曲率不是一个因素。 假设每度纬度正好有69.1691英里。 假设每经度有55.9588英里(仅塔尔萨地区) 我想弄清楚最后一个点的坐标是什么 有人能帮忙吗。我只是不知道从哪里开始找到第三点有很多方法。等边三角形中的角度都是60度。第三点

Geometry 来自Scenekit基本体的几何体

我正在成功地从SceneKit原语中提取矢量数据,非常符合这里的问题/答案: 但这似乎并不适用于SceneKit生成的所有几何体。我可以提取标准长方体、球体等,但倒角或更复杂的几何体(例如,来自SCNText)等特殊功能似乎并不包含在标准SceneKit几何体中。另外:普通SCNBox和SCNSphere仅具有一种几何分辨率,不考虑提供的参数(例如,不同于1.0的尺寸) 有人成功地从SCNText中提取了几何体吗 谢谢 Felix这些基本体的基础几何数据在渲染时或刷新事务时延迟更新 如果要确保

Geometry 实习期中

我在期中练习时遇到了这个问题,我不明白 void main(void){ int i; for(i=0; i< gl_VerticesIn; i++){ gl_Position = gl_PositionIn[i]; EmitVertex(); } EndPrimitive(); for(i=0; i< gl_VerticesIn; i++){ gl_Position = gl_PositionIn

Geometry 如何制作圆的有向圆弧(或有向曲线)?

我想在Mathematica中显示一个有向圆弧,使用像箭头那样简单的东西。我能想到的最好的例子就是在圆弧的一端钉上一个箭头。但我怀疑有一种更直接的方法可以达到同样的效果 start=\[Pi]; Manipulate[ Graphics[{ Arrow[{{Cos[\[Theta] + If[\[Theta] < start, .01, -.01]], Sin[\[Theta] + If[\[Theta] < start, .01, -.01]]},

Geometry &引用;“抓拍”;多边形在一起

我有一组代表行政区的多边形。这些区域是用手数字化的,多边形之间有一个小空间,多边形应该接触到这个空间。可能还有重叠的多边形。如何使多边形对齐,填充间隙并消除重叠 首选QGIS/ArcGIS或Python库解决方案(但欢迎算法建议)您可以在ArcGIS世界中找到一个名为:。你可以使用python API。老式的ArcInfo有一个“干净”的函数——我认为如果你使用geodb,它们在地理处理中也会做同样的事情。在该函数中,可以设置捕捉线和点的公差。清洁可以去除所有的碎屑(你所说的技术术语) 对于Qg

Geometry 围绕点的三角形点

我已经给出了平面上1000个三角形的坐标(三角形编号(T0001-T1000)及其坐标(x1,y1)(x2,y2),(x3,y3))。现在,对于给定的点P(x,y),我需要找到一个包含点P的三角形 一种选择可能是检查所有三角形并找到包含p的三角形。但是,我正在寻找解决此问题的有效方法。在程序执行期间,您必须在某个点检查每个三角形。很明显,对吧?如果希望最大限度地提高计算效率,那么需要创建某种缓存数据结构。数据结构的详细信息取决于您的应用程序。例如:三角形多久改变一次?您需要多久计算一次点的位置

Geometry 单位球体上的最近邻,具有大致均匀分布的点

我正在编写一个实现SCVT(球面形心Voronoi细分)的程序。我从分布在单位球体上的一组点开始(我可以选择随机点或等面积螺旋)。将会有几百到64K的积分 然后,我需要生成可能数百万个随机样本点,为每个样本找到集合中最近的点,并使用该点计算该点的“权重”。(该权重可能必须从另一个球形集合中查找,但该集合将在算法的任何给定运行中保持静态。) 然后我将原始点移动到计算点,并迭代该过程,可能是10或20次。这将为后续使用提供Voronoi瓷砖的中心 稍后,我将需要找到一个给定点的最近邻居,以查看用户单

Geometry 从点开始的线段

在二维平面中有一个点p和两条线段。点p是一个视图位置,相机从该位置朝向线段。当从点P看时,我想检查线段1是否部分或完全隐藏在线段2后面。我认为问题在于第二条线是否被第一条线“遮住” 假设你的相机点是C,你的线段是A1,A2和B1,B2 我会计算交叉积CA1xCB1和CA2xCB2。如果B1点位于CA1线的左侧或右侧,该标志将显示该点。这取决于三角形CA1A2和CB1B2的方向(它们的方向必须相同,它们有很多种方法) 然后,您可以使用该标志了解您是否处于以下情况: CA1xCB1为负值或CA2x

Geometry 如何将直线离散为与任意网格对齐的线段

考虑: 其目的是将任意线段(红线)离散为一组在任意网格上对齐的连接线段(蓝线段)。此处仅显示两种简单的网格形式,即方形网格和旋转方形网格。 红线可以是任何角度和大小。 网格配置(包括类型和单元大小)由用户选择。 Bresenham的离散化可能适用于简单的情况,但即使如此,也存在两个障碍: 它仅限于垂直和水平对齐的轴网 它给出了线段所在的像素(即方形块) 必需的 重要更新: 重要更新: 我们对适用于任何网格复杂性的通用解决方案感兴趣。 人们感兴趣的是一种更普遍的方法。非常感谢提供pesudo代

Geometry 在directx中合并重叠的透明形状

这就是我面临的问题: 使用directx,我需要画两个(或更多)完全重叠的三角形(在同一个2d平面上)。三角形是半透明的,但我想释放的效果是,它们剪裁为单个三角形的透明度。下面的图片可以更好地描述这个问题 有什么方法可以做到这一点吗?我用它来让重叠的透明三角形不“累积”。您需要创建一个blendstate并将其设置为输出合并 希望这有帮助。代码在C++中,但是它在C++中是一样的。基本上,取源和目的的alpha,比较并取最大值。这将总是相同的(只要你在三角形上使用相同的alpha),否则它将渲

Geometry 用四个点估计离散曲线的扭转

离散空间曲线的曲率可以使用3个连续点计算,也可以使用Menger曲率计算(请参见和) 我的问题是:是否有一个类似的明确公式,用于使用四个连续点的扭转(或) 如果不是一个明确的公式,有人知道计算它的算法/包吗?我使用python,但任何东西都可以 我可以想象基本步骤。两个连续向量定义一个平面,因此三个连续向量定义两个平面。平面法线之间的角度变化与扭转成比例。但是我需要一个精确的公式,计算出的扭转具有1/length^2的适当尺寸。具有曲线的一些参数化r(t)(例如,通过多段线链的长度),您可以使用

Geometry 求直线与圆相交的距离

直线与圆心在C(cx,cy)和半径r的圆相交。线由位置P(px,py)和方向D(dx,dy)描述P位于圆圈内,直线无限长。从P到交叉点的d距离是多少 float Intersect(Vector2d C, float r, Vector2d P, Vector2d D){ ... return d; } 您可以展开括号并求解未知t的二次方程: ((px - cx) + t * dx)^2 + ((py - cy) + t * dy)^2 = r^2 如果规范化了(dx,d

Geometry 如何快速找到距离三维或三维平面最近的k点

我需要在3维(或更多维)中快速找到离平面(或超平面)最近的k点。使用某种巧妙的数据结构(类似于kd树对k个最近邻的工作方式),有没有一种快速的方法来执行此搜索 我知道我可以旋转平面和所有点,使平面与其中一个轴正交,然后简单地使用该轴上的坐标测量每个点到平面的距离。然而,这种蛮力方法的时间复杂度是O(N),其中(N)是点数。因为我必须找到大量平面和大量点的k个最近邻,所以如果可能的话,我需要找到一个更快的算法。使用点积和超平面法线测量距离。。。因此,让我们: n-是超平面法向单位向量 p0-是超平

  1    2   3   4   5   6  ... 下一页 最后一页 共 9 页