math相关内容

获得离线最近的点

我想要一个简单的 C# 函数来获取最近的点(从点 P)到线段 AB.一个抽象函数可能看起来像这样.我搜索了 SO,但没有找到可用的(由我自己)解决方案. public Point getClosestPointFromLine(Point A, Point B, Point P); 解决方案 这里是伪装成伪代码的 Ruby,假设 Point 对象每个都有一个 x 和 y 字段. def G ..
发布时间:2022-01-14 15:06:31 C#/.NET

如何检测一个圆与同一平面上的任何其他圆之间的交点?

我正在寻找一种算法来检测一个圆是否与同一平面上的任何其他圆相交(假设一个平面上可以有多个圆). 我发现的一种方法是进行分离轴测试.它说: 如果你能找到一条将两个对象分开的线,即一条线使得一个对象的所有对象或一个对象的点都在这条线的不同边上,那么两个对象就不会相交. 但是,我不知道如何将这种方法应用到我的案例中. 谁能帮帮我? 解决方案 两个圆相交当且仅当它们的圆心之 ..
发布时间:2022-01-14 15:04:02 其他开发

在同一平面内具有相同原点的两个 3D 矢量之间的符号角

我需要的是位于同一 3D 平面内且具有相同原点的两个向量 Va 和 Vb 之间的有符号旋转角,知道: 包含两个向量的平面是任意的,并且不平行于 XY 或任何其他基平面 Vn - 平面法线 两个向量和法线都具有相同的原点 O = { 0, 0, 0 } Va - 是在 Vn 处测量左手旋转的参考 角度应该以这样的方式测量,所以如果平面是 XY 平面,Va 将代表它的 X 轴单位向量 ..
发布时间:2022-01-14 15:03:22 其他开发

使用 atan2 求两个向量之间的角度

我明白: atan2(vector.y, vector.x) = 向量与X轴的夹角. 但我想知道如何使用 atan2 获得 两个向量 之间的角度.所以我遇到了这个解决方案: atan2(vector1.y - vector2.y, vector1.x - vector2.x) 我的问题很简单: 以下两个公式会产生相同的数字吗? atan2(vector1.y - vec ..
发布时间:2022-01-14 15:01:09 其他开发

制作一个顶点等距的球体

为了检查碰撞,我正在尝试制作一个球形的光线爆发,但是根据每条光线撞击的内容或位置会发生特定的交互.因此,为什么我使用光线而不是像 OverlapSphere 这样更简单的东西. 我正在寻找如何制作球体的原因是因为我可以对光线使用相同的数学运算,让它们到达球体所在位置的顶点.但是我能找到的每一种制作球体的方法都是让线条更靠近两极,这是有道理的,因为它很容易做到.但正如你可以想象的那样,它对我当 ..
发布时间:2022-01-14 15:00:51 C#/.NET

您如何确定一个点位于线段上的其他两个点之间?

假设您有一个二维平面,上面有 2 个点(称为 a 和 b),每个点用一个 x 整数和一个 y 整数表示. 如何确定另一个点 c 是否在 a 和 b 定义的线段上? 我最常使用 python,但任何语言的示例都会有所帮助. 解决方案 检查 (ba) 和 (ca) 的 叉积 是否为 0,正如 Darius Bacon 所说,告诉您积分是否a、b 和 c 对齐. 但是,由于您想 ..
发布时间:2022-01-14 14:59:32 Python

锥盒碰撞

我希望在一个圆锥体(底部是圆的.所以它基本上是一个球体)和一个盒子之间实现碰撞检测.我不太在意它是 AABB 还是 OBB,因为转换应该足够简单.我找到的每个解决方案都使用三角锥,但我的锥更像是一个有角度和距离的“弧". 是否有一个简单的解决方案来进行这种碰撞检测?或者是做几种测试的情况?IE.比如在一个球体上获取交点,r 是我的圆锥距离,然后测试它们是否在一个角度内相交? 解决方案 ..
发布时间:2022-01-14 14:59:14 其他开发

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

我想计算一组循环数据的平均值.例如,我可能有几个指南针读数的样本.问题当然是如何处理环绕.同样的算法可能对表盘有用. 实际的问题更复杂 - 统计在球体或“环绕"的代数空间中意味着什么,例如加法群 mod n.答案可能不是唯一的,例如359 度和 1 度的平均值可能是 0 度或 180 度,但统计上 0 看起来更好. 这对我来说是一个真正的编程问题,我试图让它看起来不仅仅是一个数学问题. ..
发布时间:2022-01-14 14:59:07 其他开发

按顺时针顺序排序点?

给定一个 x,y 点数组,我如何按顺时针顺序(围绕它们的整体平均中心点)对该数组的点进行排序?我的目标是将这些点传递给一个线创建函数,最终得到一个看起来相当“实心"的东西,尽可能凸出,没有相交的线. 对于它的价值,我使用的是 Lua,但任何伪代码都会受到赞赏. 更新:作为参考,这是基于 Ciamej 出色答案的 Lua 代码(忽略我的“app"前缀): function appSor ..
发布时间:2022-01-14 14:57:50 其他开发

如何从三个点计算角度?

假设你有这个: P1 = (x=2, y=50)P2 = (x=9, y=40)P3 = (x=5, y=20) 假设 P1 是圆的中心点.它总是一样的.我想要由 P2 和 P3 组成的角度,或者换句话说,是 P1 旁边的角度.准确地说是内角.它始终是锐角,因此小于 -90 度. 我想:伙计,那是简单的几何数学.但是我现在已经寻找了大约 6 个小时的公式,只发现人们在谈论复杂的 NASA ..
发布时间:2022-01-14 14:57:23 其他开发

在球面上均匀分布n个点

我需要一种算法,它可以为我在一个球体周围提供 N 个点(可能小于 20 个)的位置,并将它们模糊地分散开来.不需要“完美",但我只需要它,所以它们都不会聚集在一起. 这个问题提供了很好的代码,但我找不到办法做到这一点统一,因为这似乎是 100% 随机的. 这篇博文推荐有两种方法允许输入球体上的点数,但 Saff and Kuijlaars 算法完全是我可以转录的伪代码,而 这个算法来自 这 ..
发布时间:2022-01-14 14:56:35 Python

如何判断一个点是在一条线的右侧还是左侧

我有一组点.我想将它们分成 2 个不同的集合.为此,我选择了两个点(a 和 b)并在它们之间画一条假想线.现在我想把这条线左边的所有点放在一组中,把这条线右边的点放在另一组中. 我如何判断任何给定点 z 是在左边还是在右边?我试图计算 a-z-b – 之间的角度.小于 180 的角度在右侧,大于 180 的角度在左侧.但由于 ArcCos 的定义,计算出的角度总是小于 180°.是否有计算大 ..
发布时间:2022-01-14 14:55:35 C#/.NET

为什么 Decimal.Divide(int, int) 有效,但 (int/int) 无效?

为什么将两个 32 位 int 数除为 (int/int) 返回给我 0,但如果我使用 Decimal.Divide() 我得到正确答案?我绝不是 C# 人. 解决方案 int是整数类型;将两个整数相除执行 integer 除法,即小数部分被截断,因为它不能存储在结果类型中(也是 int!).相比之下,Decimal 有一个小数部分.通过调用 Decimal.Divide,您的 int 参 ..
发布时间:2022-01-14 14:51:48 C#/.NET

带有数学运算符的字符串到整数

我有一个带有数学运算符的字符串,我需要将其转换为 int(答案). 以下代码不起作用,但我不确定如何使 answer 变量起作用. 字符串问题;诠释答案;问题 = "7/7+9-9*5/5";答案 = Integer.parseInt(问题); 解决方案 Integer.parseInt(question); ...要是这么简单就好了... "7/7+9-9*5/5"="nofo ..
发布时间:2022-01-14 14:49:10 Java开发

设计函数 f(f(n)) == -n

我上次面试时遇到的一个问题: 设计一个函数f,这样: f(f(n)) == -n 其中 n 是一个 32 位 有符号整数;你不能使用复数算术. 如果您无法为整个数字范围设计这样的函数,请尽可能设计最大范围. 有什么想法吗? 解决方案 怎么样: f(n) = 符号(n) - (-1)n * n 在 Python 中: def f(n):如果 n == 0:返回 0 ..
发布时间:2022-01-14 14:41:17 其他开发

如何在给定范围内创建一个随机打乱数字的 int 数组

基本上,假设我有一个可以容纳 10 个数字的 int 数组.这意味着我可以在每个索引中存储 0-9(每个数字只能存储一次). 如果我运行下面的代码: int[] num = new int[10];for(int i=0;i 我的数组看起来像这样: [0],[1],.....,[8],[9] 但是如何在每次运行代码时随机分配数字?例如,我希望数组看起来像: [8],[1],[0]. ..
发布时间:2022-01-14 14:40:31 Java开发

你如何在 C# 中做 *integer* 幂运算?

.NET 中的内置 Math.Pow() 函数将 double 基数提升为 double 指数并返回 >double 结果. 用整数做同样的事情的最好方法是什么? 补充:似乎可以将 Math.Pow() 结果转换为 (int),但这总是会产生正确的数字且不会出现舍入错误吗? 解决方案 一个相当快的可能是这样的: int IntPow(int x, uint pow){int ..
发布时间:2022-01-14 14:30:46 C#/.NET

Java 对任意数字进行四舍五入

对于一个简单的问题,我似乎找不到我正在寻找的答案:如何将任何数字四舍五入到最接近的 int? 例如,只要数字为 0.2、0.7、0.2222、0.4324、0.99999,我希望结果为 1. 目前为止 int b = (int) Math.ceil(a/100); 不过,它似乎没有做这项工作. 解决方案 Math.ceil() 是要调用的正确函数.我猜 a 是一个 int, ..
发布时间:2022-01-14 14:09:35 Java开发

以独特且确定的方式将两个整数映射为一个

想象两个正整数 A 和 B.我想将这两个组合成一个整数 C. 不能有其他整数 D 和 E 与 C 结合.所以将它们与加法运算符结合起来是行不通的.例如 30 + 10 = 40 = 40 + 0 = 39 + 1串联也不起作用.例如“31"+“2"=312=“3"+“12" 这种组合运算也应该是确定性的(总是在相同的输入下产生相同的结果)并且应该总是在整数的正侧或负侧产生一个整数. ..
发布时间:2022-01-14 13:54:24 其他开发