python 空间距离计算

目录

python 空间距离计算

已知两点,画三角形

批量矩阵计算


python 空间距离计算

要在空间中找到一个点,使其位于点 b 和 c 之间的连线上,并且与点 b 的距离等于点 a 到点 b 的距离的2倍。

import numpy as npif __name__ == '__main__':a = np.array([1, 2, 1])b = np.array([3, 4,2])c = np.array([7, 8, 15])bc = c - bprint('dis a',np.linalg.norm(b - a) )# 计算点 d 的坐标,使得 db = abd = b + 2*(np.linalg.norm(b - a) / np.linalg.norm(bc)) * bcprint("点 d 的坐标为:", d)print('dis a', np.linalg.norm(d - b))

已知两点,画三角形

import numpy as np
import cv2# 定义点 a 和 b
a = np.array([100, 400])
b = np.array([300, 200])# 计算向量 ab 和点 d 的坐标
ab = b - a
d = a + 0.65 * ab# 计算向量 ab 的单位法向量
n = np.array([-ab[1], ab[0]])
n = n / np.linalg.norm(n)up=-1
# 计算点 c 的坐标
c = d -up* int(0.2 * np.linalg.norm(ab)) * n# 创建一个黑色背景的图像
height, width = 500, 500
img = np.zeros((height, width, 3), dtype=np.uint8)# 在图像上绘制点和线段
cv2.circle(img, tuple(a), 5, (0, 0, 255), -1)
cv2.circle(img, tuple(b), 5, (0, 255, 0), -1)
cv2.circle(img, tuple(c.astype(int)), 5, (255, 0, 0), -1)
cv2.line(img, tuple(a), tuple(c.astype(int)), (255, 255, 255), 2)
cv2.line(img, tuple(b.astype(int)), tuple(c.astype(int)), (255, 255, 255), 2)# 添加文字标签
cv2.putText(img, 'A', tuple(a - np.array([10, 10])), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1)
cv2.putText(img, 'B', tuple(b + np.array([10, -10])), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1)
cv2.putText(img, 'C', tuple(c.astype(int) + np.array([10, -10])), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1)# 显示图像
cv2.imshow('Points and Lines with Labels', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

批量矩阵计算

import numpy as np
import cv2if __name__ == '__main__':up=1# 定义多组点 a 和 b 的坐标A = np.array([[100, 100], [150, 250], [200, 300]])B = np.array([[300, 400], [400, 450], [400, 600]])# 计算向量 AB 和点 D 的坐标AB = B - AD = A + 0.65 * AB# 计算向量 AB 的单位法向量N = np.array([-AB[:, 1], AB[:, 0]]).TN_norm = np.linalg.norm(N, axis=1, keepdims=True)N_unit = N / N_norm# 计算点 C 的坐标C = D + 0.2 *up* np.linalg.norm(AB, axis=1, keepdims=True) * N_unit# 创建一个黑色背景的图像height, width = 600, 600img = np.zeros((height, width, 3), dtype=np.uint8)# 在图像上绘制点和线段for i in range(A.shape[0]):a, b, c = A[i], B[i], C[i]cv2.circle(img, tuple(a), 5, (0, 0, 255), -1)cv2.circle(img, tuple(b), 5, (0, 255, 0), -1)cv2.circle(img, tuple(c.astype(int)), 5, (255, 0, 0), -1)cv2.line(img, tuple(a), tuple(c.astype(int)), (255, 255, 255), 2)cv2.line(img, tuple(b), tuple(c.astype(int)), (255, 255, 255), 2)cv2.putText(img, f'A{i + 1}', tuple(a - np.array([10, 10])), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1)cv2.putText(img, f'B{i + 1}', tuple(b + np.array([10, -10])), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1)cv2.putText(img, f'C{i + 1}', tuple(c.astype(int) + np.array([10, -10])), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1)# 显示图像cv2.imshow('Batch Points and Lines with Labels', img)cv2.waitKey(0)cv2.destroyAllWindows()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL下载安装和本地连接

1、下载MySQL 从MySQL官网下载MySQL Community Server版本: 下载地址:MySQL官网 1、进入官网,点击DOWNLOADS 2、点击MySQL Community(GPL)Downloads 3、点击MySQL Installer for Windows 4、这个会直接跳转到最新的版本 如果想下载以往的…

题目:笨笨机器人(蓝桥OJ 3262)

问题描述: 解题思路: 用n位二进制数每位来表示每一步的状态,2的n次幂即使全部可能。遍历计算全部符合题意总数,再用cnt/(2的n次幂)即答案。 需要注意的是,四舍五入后四位的方法:round(),可以四舍…

计算机网络——数据链路层(数据链路层功能概述)

计算机网络——数据链路层(数据链路层功能概述) 数据链路层的功能数据链路层的基本概念封装成帧和透明传输 我们之前已经学完了物理层的所有内容,今天开始我们要进入数据链路层的学习,如果有小伙伴对物理层的内容感兴趣的话&#…

from_pretrained 做了啥

transformers的三个核心抽象类是Config, Tokenizer和Model,这些类根据模型种类的不同,派生出一系列的子类。构造这些派生类的对象也很简单,transformers为这三个类都提供了自动类型,即AutoConfig, AutoTokenizer和AutoModel。三个…

算法系列--动态规划--子序列(2)

💕"你可以说我贱,但你不能说我的爱贱。"💕 作者:Mylvzi 文章主要内容:算法系列–动态规划–子序列(2) 今天带来的是算法系列--动态规划--子序列(2),包含了关于子序列问题中较难的几道题目(尤其是通过二维状…

数据结构从入门到精通——快速排序

快速排序 前言一、快速排序的基本思想常见方式通用模块 二、快速排序的特性总结三、三种快速排序的动画展示四、hoare版本快速排序的代码展示普通版本优化版本为什么要优化快速排序代码三数取中法优化代码 五、挖坑法快速排序的代码展示六、前后指针快速排序的代码展示七、非递…

VSCode最强插件合集,助你代码开发效率翻倍!

大家好,我是宝哥。 今天给大家推荐14个VSCode靠前的编程辅助插件,它们可以帮助你提高代码编写、调试、阅读和管理效率。 1.ESLint 简介:用于检查JavaScript代码的语法和风格错误。 功能特色:支持多种规则,可以自定义规…

left join后分组显示主表的保留单条数据的值,和子表的数据保留处理

文章目录 group 之后的 group_concat函数 group 之后的 group_concat函数 <sql id"selectMerchantVo">SELECTGROUP_CONCAT(CONCAT(CASEWHEN mc.channel_code cashpay THEN 代付通道antpay,ELSE 代收通道antwith,END,费率:,mc.settle_rate,固定费:,COALESCE(mc…

XSS-labs详解

xss-labs下载地址https://github.com/do0dl3/xss-labs 进入靶场点击图片&#xff0c;开始我们的XSS之旅&#xff01; Less-1 查看源码 代码从 URL 的 GET 参数中取得 "name" 的值&#xff0c;然后输出一个居中的标题&#xff0c;内容是 "欢迎用户" 后面…

STM32利用串口标准库发送字节,发送数组,发送字符串,发送数字,实现printf功能。

早晨到现在刚刚完成的功能&#xff1a;发送字节&#xff0c;发送数组&#xff0c;发送字符串&#xff0c;发送数字&#xff0c;实现printf功能。 当然这是建立在昨天学习使用串口发送数据的基础上&#xff0c;新建立的功能函数&#xff0c;咱们先来看看这次实验的结果吧&#…

第十一届蓝桥杯省赛第一场真题

2065. 整除序列 - AcWing题库 #include <bits/stdc.h> using namespace std; #define int long long//记得开long long void solve(){int n;cin>>n;while(n){cout<<n<< ;n/2;} } signed main(){int t1;while(t--)solve();return 0; } 2066. 解码 - …

C语言经典算法-8

文章目录 其他经典例题跳转链接41.基数排序法42.循序搜寻法&#xff08;使用卫兵&#xff09;43.二分搜寻法&#xff08;搜寻原则的代表&#xff09;44.插补搜寻法45.费氏搜寻法 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. 三色棋 5. 老鼠…

安捷伦Agilent E8364C网络分析仪

181/2461/8938产品概述&#xff1a; Agilent E8364C 网络分析仪是 Agilent PNA 系列网络分析仪&#xff08;高性能网络分析仪&#xff09;的一部分&#xff0c;具有满足您关键需求的最高准确度。Agilent E8364C 具有 10 MHz 至 50 GHz 的宽频率范围&#xff0c;并具有 2 个端口…

刀具磨损失效形式

目录 磨料磨损 扩散磨损 粘着磨损 腐蚀磨损 氧化磨损 表面疲劳磨损 热点磨损 刀具失效形式有磨损、破损和折断。在微小孔钻削中&#xff0c;磨损形式有很多种&#xff0c;如磨料磨损、扩散磨损、粘着磨损、腐蚀磨损、氧化磨损、表面疲劳磨损、热点磨损等。 磨料磨损 磨…

python电影院订票信息管理系统flask-django-php-nodejs

当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统电影院订票采取了人工的管理方法&#xff0c;但…

leetcode 20.有效的括号 JAVA

题目 思路 括号的匹配&#xff0c;这是一道经典的栈的应用问题。 给我们一个字符串&#xff0c;当我们遍历到左括号时&#xff0c;让其入栈。当我们遍历到右括号时&#xff0c;让栈顶元素出栈&#xff0c;看看栈顶的元素是否和遍历到的右括号匹配。不匹配的话直接false,匹配的…

基于FPGA的FFT图像滤波设计

1.FFT滤波算法介绍 FFT滤波就是通过傅里叶运算将图像转换到频域空间&#xff0c;然后在频域中对图像进行处理&#xff0c;最后将处理后的图像通过傅里叶逆运算将图像转会到时域空间。 在频域空间中&#xff0c;我们能够更好的对图像的噪声进行分析&#xff0c;然后找出相关规律…

Kubernetes(k8s)集群健康检查常用的五种指标

文章目录 1、节点健康指标2、Pod健康指标3、服务健康指标4、网络健康指标5、存储健康指标 1、节点健康指标 节点状态&#xff1a;检查节点是否处于Ready状态&#xff0c;以及是否存在任何异常状态。 资源利用率&#xff1a;监控节点的CPU、内存、磁盘等资源的使用情况&#xf…

Flutter知识点整理

JVM 1.Flutter Hot reload 实现原理 一、原理概述 Hot Reload 只能在 Debug 模式下使用&#xff0c;因为 Debug 模式下&#xff0c;Flutter 采用的是 JIT&#xff08; 动态编译&#xff09;&#xff0c;代码是运行在 Dart VM 上&#xff0c;JIT 将 Dart 编译成可以运行在 Dart…

YOLOv8 | 注意力机制 | ShuffleAttention注意力机制 提升检测精度

YOLOv8成功添加ShuffleAttention ⭐欢迎大家订阅我的专栏一起学习⭐ &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; YOLOv5涨点专栏&#xff1a;http://t.csdnimg.cn/1Aqzu YOLOv8涨点专栏…