栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实现三维点到直线的投影

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实现三维点到直线的投影

首先要知道原理 ,今天机器学习作业要将三维的点投影到三维直线上,以下记录方法

方法借鉴:3D空间点到直线的距离 - 知乎 (zhihu.com)第一种方法

x1、x2存的是数据集,d、t是直线的参数

fig = plt.figure()
ax1 = plt.axes(projection='3d')
x = [-s0 * 250, s0 * 250] #投影的线的两个点的坐标,这里用的是过原点的直线
y = [-s1 * 250, s1 * 250]
z = [-s2 * 250, s2 * 250]
figure = ax1.plot(x,y,z,c='g') 
for i in range(0,75):

    d = x1[i][0]*s0+ x1[i][1]*s1+x1[i][2]*s2
    t = d/(s1*s1 + s2*s2 +s0*s0)
    x3 = s0*t
    y3 = s1*t
    z3 = s2*t
    ax1.scatter(x3, y3, z3, s=20, c='r', depthshade=True)
for i in range(0, 75):
    d = x2[i][0] * s0 + x2[i][1] * s1 + x2[i][2] * s2
    t = d / (s1 * s1 + s2 * s2 + s0 * s0)
    x3 = s0 * t
    y3 = s1 * t
    z3 = s2 * t
    ax1.scatter(x3, y3, z3, s=20, c='b', depthshade=True)

这边是效果图

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号