点之间的角度?

2024-02-28

我有一个三角形(A,B,C),我试图找到每对三个点之间的角度。

问题是我可以在网上找到的算法是用于确定向量之间的角度。使用向量,我可以计算从 (0, 0) 到我所拥有的点的向量之间的角度,但这并不能给出三角形内的角度。

好的,这是在维基百科页面上的方法之后并减去这些值之后的一些 Python 代码:

import numpy as np
points = np.array([[343.8998, 168.1526], [351.2377, 173.7503], [353.531, 182.72]])

A = points[2] - points[0]
B = points[1] - points[0]
C = points[2] - points[1]

for e1, e2 in ((A, B), (A, C), (B, C)):
    num = np.dot(e1, e2)
    denom = np.linalg.norm(e1) * np.linalg.norm(e2)
    print np.arccos(num/denom) * 180

这给了我 60.2912487814、60.0951900475 和 120.386438829,那么我做错了什么?


这里有两个错误。

  • 从弧度转换为角度时,您错过了 π 因子(即 × 180 / π)

  • 您必须小心向量的符号,因为它们是有向线段。

如果我进行这些修改,我会得到一个有意义的结果:

import numpy as np
points = np.array([[343.8998, 168.1526], [351.2377, 173.7503], [353.531, 182.72]])

A = points[2] - points[0]
B = points[1] - points[0]
C = points[2] - points[1]

angles = []
for e1, e2 in ((A, B), (A, C), (B, -C)):
    num = np.dot(e1, e2)
    denom = np.linalg.norm(e1) * np.linalg.norm(e2)
    angles.append(np.arccos(num/denom) * 180 / np.pi)
print angles
print sum(angles)

打印出

[19.191300537488704, 19.12889310421054, 141.67980635830079]
180.0

我可能会让事情变得更加对称,并使用循环的 A、B、C 向量且总和为零:

import numpy as np
points = np.array([[343.8998, 168.1526], [351.2377, 173.7503], [353.531, 182.72]])

A = points[1] - points[0]
B = points[2] - points[1]
C = points[0] - points[2]

angles = []
for e1, e2 in ((A, -B), (B, -C), (C, -A)):
    num = np.dot(e1, e2)
    denom = np.linalg.norm(e1) * np.linalg.norm(e2)
    angles.append(np.arccos(num/denom) * 180 / np.pi)
print angles
print sum(angles)

打印出

[141.67980635830079, 19.12889310421054, 19.191300537488704]
180.0

点积中的负号是因为我们试图获得内角。

很抱歉,我们在您需要的时候关闭了问题,把您赶走了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

点之间的角度? 的相关文章

  • 如何使用 .pth 文件添加 Python 导入路径

    如果我将 pth 文件放入 site packages 中 则会给出一个ImportError 我不知道如何通过创建 pth 文件来导入 指在Python中导入 https stackoverflow com questions 69728
  • 测试交互式Python程序

    我想知道python的哪些测试工具支持交互式程序的测试 例如 我有一个由以下人员启动的应用程序 python dummy program py gt gt Hi whats your name Joseph 我想要仪器Joseph所以我可以
  • 如何使用 Twython 将 oauth_callback 值传递给 oauth/request_token

    Twitter 最近刚刚强制执行以下规定 1 您必须通过oauth callbackoauth request token 的值 这不是可选的 即使您已经在 dev twitter com 上设置了一个 如果您正在执行带外 OAuth 请通
  • 如何使用 python http.server 运行 CGI“hello world”

    我使用的是 Windows 7 和 Python 3 4 3 我想在浏览器中运行这个简单的 helloworld py 文件 print Content Type text html print print print print h2 H
  • 更改 numpy 数组的结构强制给定值

    如何缩小栅格数据的比例4 X 6大小成2 X 3如果 2 2 像素内的任何元素包含 1 则大小强制选择 1 否则选择 0 import numpy as np data np array 0 0 1 1 0 0 1 0 0 1 0 0 1
  • 类型错误:translate() 只接受一个参数(给定 2 个参数)[重复]

    这个问题在这里已经有答案了 我的代码在 python 2 x 版本上运行良好 但是当我尝试在 python 3 x 版本上运行它时 出现错误 主题 需要缩写短信编码中的任何消息 Code def sms encoding data star
  • Scrapy Splash,如何处理onclick?

    我正在尝试抓取以下内容 我能够收到响应 但我不知道如何访问以下项目的内部数据以抓取它 我注意到访问这些项目实际上是由 JavaScript 和分页处理的 这种情况我该怎么办 下面是我的代码 import scrapy from scrapy
  • Django 说“id 可能不为 NULL”,但为什么会这样呢?

    我今天要疯了 我只是尝试插入一条新记录 但它返回了 post blogpost id 可能不为 NULL 错误 这是我的模型 class BlogPost models Model title models CharField max le
  • 将相同的 Patch 实例添加到 matplotlib 中的多个子图中

    我正在尝试将补丁的相同实例添加到 matplotlib 中的多个轴 这是最小的例子 import matplotlib pyplot as mpl plt import matplotlib patches as mpl patches f
  • 检查列表是否已排序的 Pythonic 方法

    有没有一种Python式的方法来检查列表是否已经排序ASC or DESC listtimestamps 1 2 3 5 6 7 就像是isttimestamps isSorted 返回True or False 我想输入一些消息的时间戳列
  • 为什么斐波那契堆被称为斐波那契堆?

    The 斐波那契堆 http en wikipedia org wiki Fibonacci heap数据结构的名称中有 斐波那契 一词 但数据结构中似乎没有任何内容使用斐波那契数 根据维基百科文章 斐波那契堆的名称来自于运行时间分析中使用
  • Python Tkinter 网格复选框

    我想知道是否有一种简单的方法可以使用 Tkinter 创建复选框网格 我正在尝试制作一个由 10 行和 10 列 即 100 个复选框 组成的网格 以便每行只能选择两个复选框 编辑 我正在使用带有spyder的python 2 7 到目前为
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • 使用 conda 安装额外功能

    With pip我们可以使用方括号安装子包 例如与阿帕奇气流 https pythonhosted org airflow installation html pip install airflow all 有类似的东西吗conda或者我必
  • 从 python 文件调用 Julia 函数

    我能够创建一个 docker 环境 然后按照这个线程我有一个用 Julia 编写的高性能函数 如何从 Python 中使用它 https stackoverflow com questions 64241264 i have a high
  • 给定一个字符串,如何删除所有重复的连续字母?

    如何从字符串中删除两个连续的字母 例如 a str hii thherre 应该成为 hi there 我尝试这样做 a str join sorted set a str key a str index 但是 我得到 hi ter 是的
  • Django 按小时过滤

    我找到了那个链接 http code djangoproject com attachment ticket 8424 time filters diff http code djangoproject com attachment tic
  • 重写 PyGObject 中的虚拟方法

    我正在尝试实施高宽几何管理 http developer gnome org gtk3 3 2 GtkWidget html geometry management在 GTK 和 Python 中用于我的自定义小部件 我的小部件是来自的子类
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • AES 在 cryptojs 中加密并在 python Crypto.Cipher 中解密

    使用 js CryptoJS 加密并使用 python crypto Cipher 解密时出现问题 这是我在js中的实现 附加 iv 与加密消息并使用 base64 进行编码

随机推荐

  • 在SQL Server 2005中,如何获取视图所依赖的其他数据库中的表?

    在 SQL Server 2008 中 对于给定数据库中的视图 我可以通过执行以下命令来获取该视图所依赖的其他数据库中的表 select distinct referenced database name referenced schema
  • 使用 spring-hateoas 使用基于 HAL 的 REST 服务

    我正在尝试使用 RestTemplate 类使用基于 HAL 的 REST 服务 响应正文如下所示 embedded school teachers name Adams state CA links self href http loca
  • 如何在 android 或 ios 移动设备上运行 Nodejs 运行时

    我正在尝试使用 Ionic Framework 为 iOS android 开发一款 chrome cast 应用程序 为此我在应用程序中需要很少的 NodeJS 包 它可以在我的桌面上运行 但我不确定它将如何在没有可用的 Node 运行时
  • Heroku Rails Rake 任务同步生产和本地数据库

    我正在尝试创建一个 rake 任务 以便我只需键入 rake db sync 即可更新我的本地数据库以匹配生产 该解决方案利用 Heroku 团队提供的代码 使用 PG 备份导入和导出 Heroku Postgres 数据库 https d
  • 查找包含集合中所有值的最短连续子数组的算法

    我有以下问题需要解决 给定一组整数 例如 1 3 2 以及随机整数数组 例如 1 2 2 5 4 0 1 1 2 2 0 3 3 找到包含集合中所有值的最短连续子数组 如果找不到子数组 则返回空数组 Result 1 2 2 0 3 Or
  • 获取Android上所有应用程序的运行时间

    嗨 我正在开发一个应用程序 我必须在其中获取running time设备上安装的所有应用程序 那么 是否可以知道别人的应用程序在手机上运行了多长时间呢 例如 gmail 应用程序在手机上运行了多长时间 有没有API为此 或者我们必须开发自己
  • 为什么 JMX 报告的 JVM 堆使用最大值会随时间变化?

    我的一个 hadoop 集群的名称节点上的 JVM 堆最大值配置为 8GB 当我使用 JMX 监控 JVM 时 报告的最大值不断波动 如附图所示 http highlycaffeinated com assets images heapma
  • Python 可以识别交互运行的文件的更改吗?

    我正在做一些故障排除 我很好奇是否可以交互地运行 Python 脚本 更改脚本中定义的函数 保存文件 然后让交互式 shell 识别更改 这是我目前正在做的一个例子 my script py def dummy func print Som
  • 使用 @parameters 的 T-SQL 动态分组

    我想实现 SELECT param1 param2 param3 t field1 sum t amount FROM table t WHERE t field 2 IS NOT NULL AND t field3ID 12345 GRO
  • scipy PchipInterpolator 实现问题

    我正在尝试基于链接实现 PchipInterpolator http docs scipy org doc scipy 0 14 0 reference generated scipy interpolate PchipInterpolat
  • pdf.js 与本地 pdf 文件

    我正在尝试 pdf js 库 只想在我的服务器上显示本地 pdf 文件 而不是示例提供的 pdf 文件
  • 带有构建优化器的 AOT 和 JIT

    我正在关注解决方案here https github com Alekcei AotAndJit使用的JitCompilerFactory加载运行时编译器和自定义装饰器以保留组件和模块元数据 但是有了 Angular cli build o
  • golang中如何通过引用传递结构体类型的接口?

    我需要通过引用传递结构类型的接口 如下所示 由于我不能使用接口指针来构造类型变量 我应该如何更改以下代码来修改te价值10 package main import fmt func another te interface te check
  • 获取使用 Chart.js 渲染的折线图 y 轴的最大值

    我使用 Chart js 渲染分散折线图 效果非常好 对于渲染算法 我需要找出 y 轴上显示的最高值 因此假设数据集中的 最大 点为 y 248 因此 y 轴显示 250 作为最大值 我需要知道它是250 我尝试在运行时检查图表对象 如下所
  • Material UI 主题覆盖:如何全局覆盖子样式?

    我正在构建一个应用程序材质UI库 https material ui com 对于 ReactJS 使用主题覆盖 API https material ui com customization overrides global theme
  • MongoDB C# 2.0 超时异常

    我们最近将 Web 应用程序升级到 MongoDB C Driver 2 0 并部署到生产环境 在一定负载以下 应用程序运行良好 一旦生产服务器上的负载超过一定限制 应用程序的CPU立即降至0 大约30秒后 该异常会被记录多次 System
  • 轮播图像未填充 bootstrap 3 中的宽度

    我对这种响应式的东西太陌生了 我正在尝试使用新 bootstrap 3 中的轮播 但由于某种原因 图像没有填充轮播的宽度 所有图像的尺寸完全相同 1000x395 无论我做什么 它都不会完全填满 非常感谢任何和所有的帮助 这是我正在使用的代
  • 获取当前的 jQuery 选择器字符串?

    调用自定义插件时 如何获取当前选择器字符串 my selector p my plugin 想要输出my selector p在我的脚本中 我怎样才能访问这个字符串 您可以使用selector https api jquery com se
  • Kubernetes客户子域动态绑定

    我有以下用例 我们的客户经常在其 K8s 集群上发布新服务 这些新服务可以通过负载平衡和 Ingress 从外部访问 以便在部署服务后动态配置此负载平衡 这对于我们客户的开发团队来说非常容易 因为他们不必等到有人手动配置负载平衡 他们只需在
  • 点之间的角度?

    我有一个三角形 A B C 我试图找到每对三个点之间的角度 问题是我可以在网上找到的算法是用于确定向量之间的角度 使用向量 我可以计算从 0 0 到我所拥有的点的向量之间的角度 但这并不能给出三角形内的角度 好的 这是在维基百科页面上的方法