![]() |
1
19
我想你要找的是 inner product (您也可以查看 dot product 两个角的入口)。在你的例子中,这是由以下给出的:
答案是以弧度表示的。 编辑: 这是一个完整的实现。替换p1、p2和p3中的问题值,让我知道你得到了什么。根据两条线的定义,点p1是两条线相交的顶点。
上面的代码产生:
|
![]() |
2
4
这样,它就会一直是内角。在得到结果后再添加。 |
![]() |
3
3
如果您希望在0度到360度之间的角度,请使用以下代码;它经过全面测试并具有功能性:
} 注: 顺时针旋转; |
![]() |
4
1
两个矢量之间的内角(v1,v2)=arc cos(内积(v1,v2)/(模件(v1)*模件(v2))。 其中内积(v1,v2)=xv1*xv2+yv1*yv2 模块(V)=sqrt(电源(XV,2)+电源(YV,2)) 因此,您问题的答案在以下示例中实现:
|
![]() |
5
1
整个问题比给出的答案容易得多: 当使用atan(slope)时,会丢失(字面上)一位信息,即范围(0..2*pi)中正好有两个角度(theta)和(theta+pi),它们为函数tan()提供了相同的值。 只需使用atan2(deltax,deltay)就可以得到正确的角度。例如
然后减去,取绝对值,如果大于pi,则减去2*pi。 |
![]() |
6
1
如果你使用绝对值,你总是会得到锐角。这是正切θ=m1-m2的abs值(1+m1*m2)。如果你取反切线,你的答案将以弧度或度数表示,不管计算器是怎样设置的。对不起,这不是编程术语,我是数学老师,不是程序员… |
![]() |
7
0
得到外角和内角完全取决于减法的顺序(想想看)。你需要从较大的θ中减去较小的θ,这样才能可靠地得到内角。您可能还想使用
|
![]() |
8
0
我希望我能正确理解你的问题,因为我想要的是锐角,而不是两条直线相交的钝角。我说的对吗? 相交点的锐角和钝角互为180度角。即
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/atan.html 证明了at an在+/-pi/2处是渐近的。
因此,无论您是否使用
考虑以下伪代码:
函数
但是,它不能用于pi/2附近的角度值,因为角度与该附近结果的二元比较是否表示钝角或锐角值得怀疑。
因此,我们必须比较两条直线的点的坐标。
我们发现第三行是否由
根据毕达哥拉斯定理, 如果角度正好是pi/2或90度,就会形成斜边。让我们称其假设的斜边线为l3hypo。 通过你头脑中的几何可视化,
因此,
因此,下面的伪代码,
假设你已经有了这个功能 GetGradient(点P,Q):
我可能在伪代码中犯了一些打字错误(希望不会),但我演示了这个概念的要点。如果是这样的话,有人会很乐意编辑掉打字错误。 进一步 然而,经过仔细考虑后,我发现,由于指令的存在,精确性的斗争主要集中在它最薄弱的环节上。
所以,我们不妨省去所有的麻烦,简单地做一下:
|
![]() |
Coolerini · C-计算文件中的字、字符和行数。字符计数 7 年前 |
![]() |
YazOT · 使用python从文本文件中提取特定行 7 年前 |
![]() |
Peter · TA上的图表系列水平线 7 年前 |
![]() |
NinaG · 带有彩色组和组内不同标记的散点图 7 年前 |
![]() |
NapolyoN · 要在bash脚本中逐行读取的Python输出 8 年前 |
![]() |
Loanb222 user2746752 · 如何用swift旋转线条 9 年前 |
![]() |
HM14 · 在文件Python的末尾添加x个新行数 9 年前 |