BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1104|回复: 0

Blender使用Matrix 矩阵 小知识

[复制链接]
发表于 2013-6-13 10:27:44 | 显示全部楼层 |阅读模式

  1. 注意,blender内部数据使用的是弧度制,而非角度制,转换:
  2. >>> import math
  3. >>> radians(
  4. radians(x)
  5. Convert angle x from degrees to radians. 角度转成弧度
  6. >>> radians(60)
  7. 1.0471975511965976

  8. >>> degrees(
  9. degrees(x)
  10. Convert angle x from radians to degrees. 弧度转成角度
  11. >>> degrees(1.04)
  12. 59.58761069360562




  13. m = C.active_object.matrix_world

  14. #bl默认使用4*4矩阵
  15. >>> m
  16. Matrix(((1.0505398511886597, 0.25288617610931396, 0.3783535361289978, 0.0),
  17.         (-0.40398314595222473, 0.9564527273178101, 0.4824233949184418, 0.0),
  18.         (-0.20952445268630981, -0.5761798620223999, 0.966877818107605, 0.0),
  19.         (0.0, 0.0, 0.0, 1.0)))

  20. #第一列是x方向与大小
  21. >>> m.col[0]
  22. Vector((1.0505398511886597, -0.40398314595222473, -0.20952445268630981, 0.0))

  23. #第二列是y方向与大小
  24. >>> m.col[1]
  25. Vector((0.25288617610931396, 0.9564527273178101, -0.5761798620223999, 0.0))

  26. #第三列是z方向与大小
  27. >>> m.col[2]
  28. Vector((0.3783535361289978, 0.4824233949184418, 0.966877818107605, 0.0))

  29. #第四列是0,0,0也就是物体在bl坐标系的原点0,如果对物体位置改变,第四列是
  30. >>> m.col[3]
  31. Vector((1.0, 0.5, 0.10000000149011612, 1.0))
  32. #x轴=1,y轴=0.5,z轴=0.1

  33. #整个矩阵
  34. >>> m
  35. Matrix(((1.0505398511886597, 0.25288617610931396, 0.3783535361289978, 1.0),
  36.         (-0.40398314595222473, 0.9564527273178101, 0.4824233949184418, 0.5),
  37.         (-0.20952445268630981, -0.5761798620223999, 0.966877818107605, 0.10000000149011612),
  38.         (0.0, 0.0, 0.0, 1.0)))



  39. #常见的已知角度/矢量,获得相关矩阵的方法
  40. TM = Matrix.Identity(3)
  41. TM.col[2] = targetNor                           #Z
  42. TM.col[1] = targetNor.cross( (0,0,1) )   #Y
  43. TM.col[0] = TM.col[1].cross(targetNor) #X
  44. TM.normalize()



  45. #局部坐标转化为全局坐标
  46. m.copy() * C.active_object.data.vertices[0].co

  47. #局部方向转化为全局方向
  48. (m.copy().to_3x3()) * C.active_object.data.vertices[0].normal
复制代码


Blender矩阵API参考:
http://www.blender.org/documenta ... ml#mathutils.Matrix

[low level实例]
http://blender.stackexchange.com ... l-python-no-bpy-ops

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2019-11-19 04:22 , Processed in 0.015645 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表