python – 矢量标准化

python – 矢量标准化,第1张

概述半矢量的公式是(Hv)=(Lv Vv)/ | Lv Vv |,其中Lv是光矢量,Vv是视图矢量. 我在Python代码中这样做了吗? Vvx = 0-xi # view vector (calculating it from surface points)Vvy = 0-yiVvz = 0-ziVv = math.sqrt((Vvx * Vvx) + (Vvy * Vvy) + (Vvz 半矢量的公式是(Hv)=(Lv Vv)/ | Lv Vv |,其中Lv是光矢量,Vv是视图矢量.

我在Python代码中这样做了吗?

Vvx = 0-xi  # vIEw vector (calculating it from surface points)Vvy = 0-yiVvz = 0-ziVv = math.sqrt((Vvx * Vvx) + (Vvy * Vvy) + (Vvz * Vvz))  # normalizingVvx = Vvx / VvVvy = Vvy / VvVvz = Vvz / VvLv = (1,1,1)  # light vectorHn = math.sqrt(((1 + Vvx) * (1 + Vvx)) + ((1 + Vvy) * (1 + Vvy)) +               ((1 + Vvz) * (1 + Vvz))) Hv = ((1 + Vvx) / Hn,(1 + Vvy) / Hn,(1 + Vvz) / Hn)  # half-way vector
解决方法 这是错误的名字.你写的是两个向量的简单向量加法,结果是一个归一化的单位向量.

这是我如何做到的:

import mathdef magnitude(v):    return math.sqrt(sum(v[i]*v[i] for i in range(len(v))))def add(u,v):    return [ u[i]+v[i] for i in range(len(u)) ]def sub(u,v):    return [ u[i]-v[i] for i in range(len(u)) ]def dot(u,v):    return sum(u[i]*v[i] for i in range(len(u)))def normalize(v):    vmag = magnitude(v)    return [ v[i]/vmag  for i in range(len(v)) ]if __name__ == '__main__':    l = [1,1]    v = [0,0]    h = normalize(add(l,v))    print h
总结

以上是内存溢出为你收集整理的python – 矢量标准化全部内容,希望文章能够帮你解决python – 矢量标准化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存