transform、matrix的数学基础及threejs基本概念

示例

https://c.runoob.com/codedemo/3391
https://www.runoob.com/try/try.php?filename=trycss3_transform-origin_inuse

transform的matrix表示

transform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。
transform-origin属性允许您更改转换元素的位置。 2D转换元素可以改变元素的X和Y轴。 3D转换元素,还可以更改元素的Z轴。
transfrom matrix:

matrix(n,n,n,n,n,n)    定义 2D 转换,使用六个值的矩阵。 
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)定义 3D 转换,使用 16 个值的 4x4 矩阵。
transform与线性变化-translate

transform与线性变化-rotate

transform与线性变化

transform与线性变化-升维

transform与线性变化-升维例子

css中matrix

参考
栅格化时为什么要引入齐次坐标: //www.greatytc.com/p/63ca53530a24
线性变换:
https://pan.baidu.com/share/init?surl=PHvga2hM5Gj3BhzeNcQNCQ,提取码:6zen
图形学 位移,旋转,缩放矩阵变换:
//www.greatytc.com/p/ac1b34420be7

threejs基础概念

webgl处理流程
  • threejs中的transform操作

    threejs中的transform操作

    Three.js中矩阵和向量的使用教程(附例子)://www.greatytc.com/p/7259aef11d4e

  • 坐标系空间变换
    坐标变换过程:物体从三维坐标映射到2D屏幕上,要经过一系列的坐标系变换,这些坐标系如下:
    model => world => image => perspective => screen
    (局部坐标=>世界坐标=>观察坐标=>透视坐标=>屏幕坐标)
    具体参见//www.greatytc.com/p/09095090c07f
    https://blog.csdn.net/jgwuhust/article/details/51485702
    model(相对/本地坐标系)
    物体本身(local)的坐标系,是相对坐标。
    比如一个3D人物模型,头部某个点的坐标为(0,0,20),这是相对该模型的中心点(0,0,0)说的。当模型向前移动了5个单位,其中心点依旧是(0,0,0),头部那个点依旧是(0,0,20)。
    world(世界坐标系)
    世界坐标系,即物体放在世界里的坐标。把各元素绘制屏幕的时候,这些元素的本地坐标需要映射成世界坐标系坐标。three.js里面的世界坐标系是右手坐标系,一个应用程序可能包含成千上百个单独对象,我们必须把他们放到一个公共场景里,相机默认在世界坐标系的原点。
    还是上面的例子,他沿Z轴移动了5个单位后,中心点在世界坐标里变成了(0,0,5),头部那个点变成了(0,0,25)。
    物体的位移,缩放,旋转会改变它的世界坐标,不会改变它的model坐标。
    image(相机坐标系)
    相机也是世界里的一个物体,相机坐标就是以相机位置为坐标原点,相机的朝向为Z轴方向的坐标系。因为我们在电脑里看到的物体其实都是“相机”帮助我们看的,“相机”就是我们的眼睛,所以要以相机为标准进行坐标转换。
    在model,world,image坐标系下,X,Y,Z的范围都是无穷大,只是坐标系的基准不一样而已。
    perspective (NDC, Normalized Device Coords)(透视坐标系)
    这一步是将三维坐标向二维平面进行映射,经过透视变换之后,(x, y)的范围在[-1, 1],z的范围在[0, 1]。
    screen(屏幕坐标系)
    因为屏幕是有分辨率的,比如1920×1080,所以还要再进行一次变换。
    该坐标系的原点在屏幕左上角,x轴朝右,y轴朝下。x的范围在[0, xres-1],y的范围在[0, yres-1],即x是[0, 1920),y是[0, 1080)。
    z值是[0, MAXINT],z=0就是屏幕那个平面,z=MAXINT就是无穷远。

  • 参考
    基于 Threejs 的 web 3D 开发入门: //www.greatytc.com/p/7ccf43f912bc
    webgl基本概念:
    //www.greatytc.com/p/1d3134de34c4
    OpenGL ES顶点着色器和片元着色器:
    //www.greatytc.com/p/16271a827095
    Threejs零基础入门:
    http://www.yanhuangxueyuan.com/Three.js/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,941评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,397评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,345评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,851评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,868评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,688评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,414评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,319评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,775评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,945评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,096评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,789评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,437评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,993评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,107评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,308评论 3 372
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,037评论 2 355

推荐阅读更多精彩内容

  • 理解SVG坐标系和变换(第二部分)transform (本文转自w3cplus,这里仅修正了部分个人认为翻译不恰当...
    王策北阅读 265评论 0 1
  • 最近在重构之前上架的一款画板应用,期间用到了一些UIView的transform相关的特性。借此机会也系统整理了一...
    Kirn阅读 2,703评论 0 9
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 3,715评论 1 4
  • 前言 最近翻阅关于从2D视频或者图片中重构3D姿态的文章及其源码,发现都有关于摄像机参数的求解,查找了相关资料,做...
    予汐阅读 6,201评论 0 3
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,598评论 0 6