标签: trigonometry

如何在C++中使用PI常量

我想在一些C++程序中使用PI常量和三角函数.我得到了三角函数include <math.h>.但是,此头文件中似乎没有PI的定义.

如何在不手动定义PI的情况下获取PI?

c++ trigonometry

437
推荐指数
16
解决办法
98万
查看次数

如何计算直线与水平轴之间的角度?

在编程语言(Python,C#等)中,我需要确定如何计算直线和水平轴之间的角度?

我认为图像描述的最符合我的要求:

没有言语可以形容这一点

给定(P1 x,P1 y)和(P2 x,P2 y)计算此角度的最佳方法是什么?原点在于topleft,只使用正象限.

c# python trigonometry

246
推荐指数
2
解决办法
22万
查看次数

C如何计算sin()和其他数学函数?

我一直在研究.NET反汇编和GCC源代码,但似乎无法找到实际实现sin()和其他数学函数的任何地方......它们似乎总是引用其他东西.

谁能帮我找到它们?我觉得C运行的所有硬件都不太可能支持硬件中的触发功能,因此某处必须有软件算法,对吧?


我知道有几种方法可以计算函数,并编写了我自己的例程来计算函数使用泰勒系列来获得乐趣.我很好奇真正的生产语言是如何做到的,因为我的所有实现总是慢几个数量级,即使我认为我的算法非常聪明(显然它们不是).

c math trigonometry

236
推荐指数
15
解决办法
15万
查看次数

如何计算圆周长的点?

如何在各种语言中实现以下功能?

(x,y)在给定输入值的情况下计算圆周上的点:

  • 半径
  • 角度
  • Origin(可选参数,如果语言支持)

algorithm math trigonometry

215
推荐指数
4
解决办法
26万
查看次数

将弧度转换为度数的方法是什么?

我偶尔碰到这个,总是忘记怎么做.

经常出现的其中一件事.

另外,将以弧度表示的角度转换为度数又返回的公式是什么?

algorithm math trigonometry

149
推荐指数
4
解决办法
11万
查看次数

三角函数如何工作?

因此,在高中数学,也可能是大学,我们学习如何使用三角函数,他们做什么,以及他们解决了什么样的问题.但它们总是作为一个黑盒子呈现给我.如果你需要某些东西的正弦或余弦,你可以点击计算器上的sin或cos按钮然后进行设置.哪个好.

我想知道的是三角函数通常是如何实现的.

algorithm math trigonometry

99
推荐指数
4
解决办法
5万
查看次数

C 中的无限正弦生成

我正在开发一个项目,其中包含计算正弦波作为控制环路的输入。

\n

正弦波的频率为 280 Hz,控制循环每 30\xc2\xa0\xc2\xb5s 运行一次,并且针对 Arm Cortex-M7 的所有内容都是用 C 编写的。

\n

目前我们只是在做:

\n
double time;\nvoid control_loop() {\n    time += 30e-6;\n    double sine = sin(2 * M_PI * 280 * time);\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

出现两个问题:

\n
    \n
  1. 跑久了time就会变大。突然之间,正弦函数的计算时间急剧增加(见图)。为什么是这样?这些功能通常是如何实现的呢?由于速度对我们来说是一个重要因素,有没有办法规避这个问题(没有明显的精度损失)?我们使用 math.h (Arm GCC) 中的 sin。\nsin 函数分析
  2. \n
  3. 我一般如何处理时间?当长时间运行时,变量time不可避免地会达到双精度的极限。即使使用计数器time = counter++ * 30e-6;也只能改善这一点,但并不能解决问题。由于我当然不是第一个想要长时间生成正弦波的人,因此必须有一些关于如何快速而精确地实现这一点的想法/论文/...。
  4. \n
\n

c precision performance time trigonometry

89
推荐指数
10
解决办法
1万
查看次数

计算圆中点的位置

目前我对此有一点空白.我有一个问题,我需要计算中心点周围点的位置,假设它们距离中心和彼此都是等距的.

点的数量是可变的,所以DrawCirclePoints(int x) 我确信这是一个简单的解决方案,但对于我的生活,我只是看不到它:)

algorithm math geometry trigonometry

76
推荐指数
5
解决办法
10万
查看次数

2D欧几里德矢量旋转

a坐在坐标处有一个欧几里得矢量(0, 1).我想旋转a通过围绕原点90度(顺时针)(0, 0).

如果我对这应该如何工作有一个正确的理解,旋转后的结果(x,y)坐标应该是(1, 0).如果我将它旋转45度(仍然顺时针),我会期望得到的坐标(0.707, 0.707).

theta = deg2rad(angle);

cs = cos(theta);
sn = sin(theta);

x = x * cs - y * sn;
y = x * sn + y * cs;
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,angle值为90.0度,结果坐标为:(-1, 1).而我真的很困惑.以下链接中的示例代表了上面显示的相同公式?

我做错了什么?或者我误解了矢量是如何旋转的?

c++ math trigonometry vector rotation

48
推荐指数
5
解决办法
8万
查看次数

向量空间模型:余弦相似度与欧几里德距离

我有分类文本的语料库.从这些我创建矢量.每个向量对应一个文档.矢量分量是本文档中的字权重,计算为TFIDF值.接下来,我构建一个模型,其中每个类都由一个向量表示.模型具有与语料库中的类一样多的向量.模型矢量的分量被计算为取自该类中矢量的所有分量值的平均值.对于未分类的矢量,我通过计算这些矢量之间的余弦来确定与模型矢量的相似性.

问题:

1)我可以使用未分类和模型向量之间的欧几里德距离来计算它们的相似性吗?

2)为什么欧几里德距离不能用作相似度量而不是两个矢量之间的角度余弦,反之亦然?

谢谢!

trigonometry vector distance euclidean-distance

39
推荐指数
3
解决办法
3万
查看次数