# 参与计算的元素 ：描述二维坐标系或3维坐标系中的一个位置。(x,y)(x,y,z)。 π=180°
sin：对边/斜边；sin曲线：x=0，y=0；x=π/2，y=1；x=π，y=0；x=3π/2，y=-1；x=2π，y=0；
cos：临边/斜边；cos曲线：x=0，y=1；x=π/2，y=0；x=π，y=-1；x=3π/2，y=0；x=2π，y=1；
tan：对边/临边；
cot：临边/对边；

# 函数的几何意义 a·b=（b在a的方向上的分量的长度）`*`（a的长度）。
(4,0,0)·(4,3,0)=4x4+0x3+0x0=16。
a·b得到的标量有正负之分，可用于验证两个矢量之间的方向关系，为正时表示同向。
a·a得到a的模的平方，可用于对比两个向量的长短。

a✖b得到一个矢量，方向同时垂直于a和b，且在以a为X正轴和b创建的左手/右手三维坐标系中方向为Z轴正方向。
a✖b得到一个矢量，长度为（a的模）x（b的模）x（a和b夹角的sin值）
(x,y,z)✖(a,b,c)=(yc − zb,za − xc,xb − ya)
(4,0,0)✖(4.3.0)=(0x0-0x3,0x4-4x0,4x3-0x4)=(0,0,12)
(4,3,0)✖(4.0.0)=(3x0-0x0,0x4-4x0,4x0-3x4)=(0,0,-12)

MMD模型数据中，构成每个三角形的三个顶点，是按顺时针计算的，渲染引擎默认只渲染正面；

(4,0,0)✖(0,3,0)=(0x0-0x3,0x0-4x0,4x3-0x0)=(0,0,12)

(0,0,1)·(0,0,12)=12 M`*`(0,4,0,0)=(1x0+0x4+0x0+0x0,0x0+cos90x4-sin90x0+0x0,0x0+sin90x4+cos90x0+0x0,0)=(0,0,4,0) M`*`(4,0,0,0)=(cos90x4+sin90x0,1x0,-sin90x4+cons90x0,0)=(0,0,-4,0) M`*`(4,0,0)=(cos90x4-sin90x0,sin90x4+cos90x0,1x0,0)=(0,4,0,0) M`*`(1,2,3,0)=(2x1,3x2,4x3,0)=(2,6,12,0)

(AB)C=A(BC)，同一时间相乘的两个矩阵依然得满足排数和列数要求，且不能改变相乘的顺序。
BC得到结果的行数为B的行数，列数为C的列数，满足于A相乘的条件。

Unity中，我们约定变换的顺序为：缩放、旋转Z，旋转X，旋转Y、平移。

transform.localPositon=new Vect(3,3,3)
transform.localEulerAngles=new Vect(90,90,90)
transform.localScale=new Vect(2,3,4)

(a,b,c)+( )d+( )e+( )f

(a,b,c,1)+ A坐标系的原点(0,0,0,1)在B坐标系的位置；
A坐标系的3个轴对应B坐标系的3个矢量；

Transform组件上写的坐标是最终偏移量，但是我们约定空间按照缩放、旋转Z，旋转X，旋转Y、平移的顺序变换。 # 从模型空间到屏幕

## 模型空间-世界空间

MMD：切换到顶点列表页面，编辑框中选中顶点后，顶点列表中自动高亮被选中的顶点。
Blender：没有发现直接面板查看顶点，但是有一个叫做Python Console的界面可以自己做脚本输出日志信息。 Blender中使用的是右手坐标系，Unity使用的是左手坐标系。

cos180=-1，sin180=0，得到点(1,1,-1)。 Transform组件的使用

A物体有Transform组件，Transform组件上的数据是用父级角度去描述的(Transform.localScale)。

## 世界空间-观察空间 Z分量取反矩阵如下： P点其实没有动过，它在不同空间里面有不同的版本只是换了一个描述角度而已。

## 观察空间-裁剪空间

Aspect为屏幕的宽度/高度，由Game视图的横纵比和像机的W和H属性共同决定。
Aspect = nearClipPlaneWidth/nearClipPlaneHeight = farClipPlaneWidth/farClipPlaneHeight b=Far-a·(Far-Near)/(Far+Near)

−w ≤ x ≤ w； −w ≤ y ≤ w； −w ≤ z ≤ w； Game窗口中，我设置屏幕比例为4:3。

## NDC-屏幕空间

X轴比例的为(x+1)/2，Y轴的比例为(y+1)/2，得到点P在视口空间中的位置为(0.57215,0.5)。 # 几何计算规律 # 其他问题

• •
{"ft_lang_label":"__label__zh","ft_lang_prob":0.9466401,"math_prob":0.999716,"size":10535,"snap":"2019-35-2019-39","text_gpt3_token_len":10397,"char_repetition_ratio":0.06371664,"word_repetition_ratio":0.0,"special_character_ratio":0.23094447,"punctuation_ratio":0.16287878,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9863991,"pos_list":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94],"im_url_duplicate_count":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,null,4,null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2019-08-19T06:33:51Z\",\"WARC-Record-ID\":\"<urn:uuid:a05c513b-f18a-446a-bc2d-e3f14c977740>\",\"Content-Length\":\"92444\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:bf916061-83a8-4ca4-8e41-c7d20d12191c>\",\"WARC-Concurrent-To\":\"<urn:uuid:ecdfb7a5-e3a8-47ac-97f7-f71d2f20fa3b>\",\"WARC-IP-Address\":\"116.62.225.80\",\"WARC-Target-URI\":\"https://acgmart.com/3d/lwrp7/\",\"WARC-Payload-Digest\":\"sha1:AMKYGN5KQ6L5CBZDNNDLYRSZOKT6GLVP\",\"WARC-Block-Digest\":\"sha1:RTR5ZTU4GV474MPALDY22Y6CH55VRW5I\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2019/CC-MAIN-2019-35/CC-MAIN-2019-35_segments_1566027314667.60_warc_CC-MAIN-20190819052133-20190819074133-00542.warc.gz\"}"}