Tag: geometry

c# – 如何将点移动给定距离d(并获得新坐标)

嗨,我想知道是否有任何有效的方法来计算点的坐标(从它的原始位置移动距离d)。 假设我有一个点P(0.3,0.5),我需要随距离d移动该点随机方向。 到目前为止,我通过随机选择新的x和y坐标来做到这一点,我正在检查新旧点之间的距离是否等于d。 我确实意识到这样做不太有效。 你会怎么做?

给定3分,我如何计算法向量?

给定三个3D点(A,B和C),如何计算法向量? 这三个点定义了一个平面,我希望矢量垂直于这个平面。 我可以获得演示此示例的示例C#代码吗?

归航导弹,它们如何工作?

我想要创造什么 向玩家发射导弹的物体,如果与玩家发生碰撞,玩家将死亡。 问题 导弹是如何向玩家移动的。 如何使导弹移动,使其不会立即直接向玩家移动(以一个角度缓慢移动)。 我有一个让鼠标成为“玩家”和导弹的公式。 mouse = Mouse.GetState(); mousePosition = new Vector2(mouse.X, mouse.Y); A = (mouse.X – Position.X); B = (mouse.Y – Position.Y); C = (A * A) + (B * B); C = (float)Math.Sqrt(C); Angle1 = A / C; Angle2 = B / C; (绘图是最好的!) 这只能获得从导弹到玩家的距离,现在我需要找到移动导弹的角度或东西,我需要做什么?

多点之间的最短路线

我需要找到多点之间的最短路线。 让我们说我有以下四点: var startPoint = new Point(1, 1); var pointsToGoPast = new List { new Point(3,1); new Point(2,4); }; var endPoint = new Point(10, 10); 因此,为了获得从startPoint到endPoint的最短路径,我想找出首先要经过的点。 谁能帮我? 更新:必须经过pointsToGoPast列表中的每个点。 每条路线的成本都是均匀的。

C#计算面积和周长

所以即时通讯使用Microsoft Visual C#2010 Express。 我试图制作一个计算面积和周长的程序。 我有2个长度和宽度的文本框。 我有2个区域和周边的只读文本框。 所以我输入区域和周长的数字,当我点击“计算”按钮时,我得到区域和周边只读框的答案。 这个计算的代码是什么?

缓冲折线以创建多边形的有效算法?

我需要编写一些代码来缓冲一行来创建一个多边形,如下所示。 http://www.sli.unimelb.edu.au/gisweb/BuffersModule/Buff_line.htm 从遵循概述的步骤开始,我可以围绕简单的线条创建多边形形状,这些线条不会交叉自己或者曲线太紧,但是因为我试图缓冲的线条是波浪形的飓风轨道,所以它真的不够好。 我知道SQL Server 2008中有一个function可以做到这一点,但我担心目前还不行。 任何人都可以指向我可以遵循的更完整算法的方向,或任何可以帮助我解决这个问题的背景信息?

StreamGeometry结合

我有复杂的StreamGeometry ,我想剪辑它。 不幸的是,看起来StreamGeometry不支持组合。 这是一个测试。 XAML: 码: var clip = new RectangleGeometry(new Rect(50, 50, 10, 10)); var rect = new RectangleGeometry(new Rect(0, 0, 100, 100)); var stream = new StreamGeometry(); using (var geometry = stream.Open()) { geometry.BeginFigure(new Point(0, 0), false, true); geometry.LineTo(new Point(0, 100), true, false); geometry.LineTo(new Point(100, 100), true, false); geometry.LineTo(new Point(100, 0), true, false); […]

如何剪裁非闭合几何体

介绍 我在实现剪辑时发现了一个问题(见这个 )。 它看起来像UIElement.Clip仍然呈现不可见的部分 渲染相对较小的几何体(线条仅填充 1920×1200区域~2000条垂直线条)需要花费大量时间。 当使用Clip并在屏幕外移动该几何体时(因此裁剪应该移除它的大部分)它仍然需要相同的时间(大约1秒)。 好吧,我发现使用Geometry.Combine会做一个剪辑(渲染时间按裁剪几何体后的比例减少)。 完善! 问题 Geometry.Combine无法正确处理非闭合几何体。 它产生封闭的几何形状 它看起来很难看,连接第一点和最后一点: 题 如何对非闭合数字执行裁剪(减少要渲染的几何体的数量)? 编辑 这是几何之前(图片上显示的小和平) {M0; 50L0; 50L1; 53,1395259764657L2; 56,2666616782152L3; 59,3690657292862L4; 62,4344943582427L5; 65,4508497187474L6; 68,4062276342339L7; 71,2889645782536L8; … 之后 {F1M54,9999923706055; 34,5491371154785L53,9999885559082; 37,5655174255371 53,0000114440918; 40,6309471130371 52,0000076293945; 43,4333335876465 … 注意事项在开始时改变,是M 0;50 L … ,变成F 1 M 55;34 L … F1表示NonZero填充 通过在任何方向上将光线从该点绘制到无穷大然后检查形状的一段与光线交叉的位置来确定点是否在路径的填充区域中的规则。 从零开始计数,每当一个片段从左到右穿过光线时添加一个,并且每当一个路径片段从右到左穿过光线时减去一个。 计算交叉点后,如果结果为零,则该点位于路径之外。 否则,它就在里面。 我完全不知道这意味着什么。 但也许这很重要? 编辑 […]

从点到此曲线的最短距离

我需要找到多个点到forms曲线的距离: f(x) = a^(k^(bx)) 我的第一个选择是使用它的导数,使用带有导数倒数的forms的线,给出Point坐标并将其与原始曲线相交。 最后,我们用简单几何计算点之间的距离。 那是我经常遵循的数学过程。 我需要节省时间(因为我正在做遗传算法程序)所以我需要一种有效的方法来做到这一点。 想法?

在旋转后,查找线/点左侧的哪一点

我目前正试图在团结中编写一个着色器,如果两个国家不属于同一个玩家(视觉辅助以查看您的边界),则在风险游戏中围绕各国绘制三角形图案。 现在,我遇到了使着色器正确设置国家的问题。 它始终将国家0设置为左侧,将国家1设置为右侧 – 国家0和1以编程方式设置。 线条边界可以在0到359度之间。 我如何找到0和1国家是我在线的中点左右两点画一个点,一个.01f,一个.1f和一个1f远离每个方向的中点,然后围绕中点旋转它们适当的位置。 之后,我做了一个奇怪的检查,看看这些点是在每个国家的内部还是外部,并比较重量结果(最接近得到3分,中间得到2,最远得到1,以防万一有人建立一个真正搞砸了面向另一个国家的国家)。 在我的测试图中,接近等切的八边形,边框正确显示(在我将角度超过90且小于或等于180的情况下颠倒了国家0和1的位置之后)。 工作没有缺陷,但在其他地图中它不能很好地工作。 除了国家分配之外的所有东西都运作良好,所以我很好奇是否有人知道更好的方法来找出哪个点是左边还是一个细线,或者更好的概念方法来处理这个问题。 上面的情况基本上就是在我做的时候,红色是左边是蓝色,然后我只是检查3个不同的点,然后权衡左边和权利发现偶数/ odding它到适当的国家(一个在+/-。 01,另一个在+/- .1和第三个1,在偶数/奇数舍入问题的情况下接近)。 然后,如果我发现国家A在右边,我会翻转它们,因为它是根据我绘制的角度在左边。 (我的着色器在第一个和第二个左边渲染,因此为什么我这样做)。