当前位置: 首页 > news >正文

织梦网站创建商品栏目jsp网站开发的mvc

织梦网站创建商品栏目,jsp网站开发的mvc,网站建设主要内容包括,建设网站做什么赚钱vec3、vec4 和齐次坐标总结 1. vec3 和 vec4 1.1 什么是 vec3 和 vec4? vec3: GLSL 中的三维向量类型,包含 3 个浮点数:(x, y, z)。常用于表示三维坐标、RGB 颜色、法线、方向等。 vec4: GLSL 中的四维向量类型&…

vec3、vec4 和齐次坐标总结


1. vec3 和 vec4

1.1 什么是 vec3 和 vec4?

  • vec3:
    • GLSL 中的三维向量类型,包含 3 个浮点数:(x, y, z)
    • 常用于表示三维坐标、RGB 颜色、法线、方向等。
  • vec4:
    • GLSL 中的四维向量类型,包含 4 个浮点数:(x, y, z, w)
    • 在三维空间中扩展了一个 w 分量,常用于齐次坐标或 RGBA 颜色。

1.2 vec3 和 vec4 的常见用途

用途vec3vec4
位置坐标用于描述 3D 空间中的点 (x, y, z)齐次坐标 (x, y, z, w)(用于投影变换)
颜色表示描述 RGB 颜色 (r, g, b)描述 RGBA 颜色 (r, g, b, a)(带透明度)
法线与方向表示法线向量或方向向量 (nx, ny, nz)较少用于法线,可能用于特殊数学场景
纹理坐标描述 3D 纹理坐标 (s, t, p)可扩展到 (s, t, p, q)
光照计算用于存储法线、光线方向、光照计算结果等较少用于直接计算,通常扩展到更高维场景

1.3 vec3 和 vec4 的访问方式

  1. 分量访问:

    • 使用分量名:
      • 位置表示: x, y, z, w
      • 颜色表示: r, g, b, a
      • 纹理坐标: s, t, p, q
    • 示例:
      vec3 position = vec3(1.0, 2.0, 3.0);
      float x = position.x;  // 1.0
      float g = position.g;  // 2.0 (等价于 y)
      
  2. 下标访问:

    • 通过 [0], [1], [2] 访问分量。
    • 示例:
      vec4 color = vec4(1.0, 0.5, 0.2, 0.8);
      float alpha = color[3];  // 0.8
      
  3. 分量重组(Swizzling):

    • 支持重新排列分量或构造新的向量。
    • 示例:
      vec3 position = vec3(1.0, 2.0, 3.0);
      vec2 xy = position.xy;      // (1.0, 2.0)
      vec4 rgba = vec4(position, 1.0); // (1.0, 2.0, 3.0, 1.0)
      

1.4 vec3 和 vec4 的底层实现

  • 内存存储:
    • vec3vec4 是连续存储的浮点数,分别占用 3 和 4 个浮点数的存储空间。
  • 无固定语义:
    • 它们只是浮点数的容器,含义由程序上下文决定。
    • 例如,vec3 可以表示位置 (x, y, z),也可以表示颜色 (r, g, b)

2. 齐次坐标(Homogeneous Coordinates)

2.1 什么是齐次坐标?

齐次坐标是笛卡尔坐标的扩展形式,通过增加一个额外的维度 w,使坐标表示为:

  • 二维齐次坐标: (x, y, w)
  • 三维齐次坐标: (x, y, z, w)

w ≠ 0 w \neq 0 w=0 时,可以还原为笛卡尔坐标:
{ x ′ = x w y ′ = y w z ′ = z w \begin{cases} x' = \frac{x}{w} \\ y' = \frac{y}{w} \\ z' = \frac{z}{w} \end{cases} x=wxy=wyz=wz

w = 1 w = 1 w=1 时,齐次坐标与笛卡尔坐标一致。


2.2 为什么需要齐次坐标?

  1. 统一几何变换:

    • 在笛卡尔坐标中,平移无法通过矩阵乘法实现。
    • 在齐次坐标中,所有变换(平移、旋转、缩放、投影)都可以通过矩阵乘法实现。
  2. 透视投影:

    • 齐次坐标的 w w w 分量用于描述透视投影的深度缩放关系。
    • 投影变换后需要归一化处理,结果由 ( x / w , y / w , z / w ) (x/w, y/w, z/w) (x/w,y/w,z/w) 确定。
  3. 表示无穷远点:

    • w = 0 w = 0 w=0 时,齐次坐标表示无穷远点,可用于方向向量表示。

2.3 数学特性

  1. 从笛卡尔坐标到齐次坐标:
    ( x , y , z ) → ( x , y , z , 1 ) (x, y, z) \rightarrow (x, y, z, 1) (x,y,z)(x,y,z,1)

  2. 从齐次坐标到笛卡尔坐标:
    ( x , y , z , w ) → ( x w , y w , z w ) (x, y, z, w) \rightarrow \left( \frac{x}{w}, \frac{y}{w}, \frac{z}{w} \right) (x,y,z,w)(wx,wy,wz)

  3. 齐次坐标变换示例(平移):
    笛卡尔坐标的平移:
    ( x ′ , y ′ , z ′ ) = ( x + t x , y + t y , z + t z ) (x', y', z') = (x + tx, y + ty, z + tz) (x,y,z)=(x+tx,y+ty,z+tz)

    齐次坐标的平移:
    [ x ′ y ′ z ′ 1 ] = [ 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 ] [ x y z 1 ] \begin{bmatrix} x' \\ y' \\ z' \\ 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & tx \\ 0 & 1 & 0 & ty \\ 0 & 0 & 1 & tz \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} xyz1 = 100001000010txtytz1 xyz1


2.4 齐次坐标的应用

  1. 几何变换:

    • 统一表示平移、旋转、缩放和投影变换。
  2. 透视投影:

    • 处理近大远小的效果,将 3D 场景投影到 2D 平面。
  3. 无穷远点:

    • 描述方向向量(如光线方向、法线等),表示为 ( x , y , z , 0 ) (x, y, z, 0) (x,y,z,0)

2.5 示例:齐次坐标在图形学中的使用

  1. 平移变换:

    ( 1 , 2 , 3 ) (1, 2, 3) (1,2,3) 平移 ( 1 , 1 , 1 ) (1, 1, 1) (1,1,1)

    齐次坐标计算:
    [ x ′ , y ′ , z ′ , 1 ] = [ 1 2 3 1 ] × [ 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 ] [x', y', z', 1] = \begin{bmatrix} 1 & 2 & 3 & 1 \end{bmatrix} \times \begin{bmatrix} 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 1 \end{bmatrix} [x,y,z,1]=[1231]× 1000010000101111

    结果: [ 2 , 3 , 4 , 1 ] [2, 3, 4, 1] [2,3,4,1]

  2. 透视投影:
    投影点 ( 2 , 4 , 6 ) (2, 4, 6) (2,4,6) 到二维平面:

    投影矩阵:
    [ 1 0 0 0 0 1 0 0 0 0 1 − 1 / d 0 0 0 1 ] \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & -1/d \\ 0 & 0 & 0 & 1 \end{bmatrix} 100001000010001/d1

http://www.15wanjia.com/news/172942.html

相关文章:

  • 沈阳网站制作思路网络新加坡域名注册商
  • 哪个网站有利于做课件枣庄手机网站建设
  • 网站系统分析报告wordpress要多少内存
  • 铜川网站开发icp备案查询官方网站
  • 临沂在线做网站单页导航网站模板
  • 网站如何制作多少钱网站建设前台和后台
  • 富阳做网站的投资网站哪个好
  • 网站里面的链接怎么做的小企业网站建设有什么用
  • 网站建设二公司湖州做网站推广的公司
  • 重庆房产信息网官网优化设计答案大全
  • 网站开发开发小游戏吗a设计网站有哪些
  • 贵州建设职业技术学院网站科技公司网站设
  • seo网站建设流程企业机房建设公司
  • 海关做预归类的网站京山网站设计公司
  • 奇墙网站建设做物流网站模块
  • html静态网站开发实验广告设计好学吗难不难
  • 南昌哪里做网站好移动网站开发试验报告
  • 铁道部售票网站多少钱建设天津市南开区网站开发有限公司
  • 提高网站粘性要怎么做网站动图
  • 玉环县建设局网站wordpress 自定义栏目 调用
  • 衡水建设局网站专升本报名入口官网2023报名时间
  • 河南做网站 河南网站建设做网站给韩国卖高仿
  • 哈尔滨中小企业网站制作深圳建筑工程交易网
  • 公司网站建设计入明细科目永兴县网站建设哪家好
  • 整站seo策略实施哪个网站是专门做兼职的
  • 要想让别人网站卖我的东西怎么做建设网站的意义作用是什么意思
  • 硅谷网站开发薪酬商业设计网站推荐
  • 网站怎么做微信支付宝支付做淘宝客网站哪个好
  • 杭州倍世康 做网站直接在wordpress官网写博客
  • 沙县住房和城乡规划建设局网站文字一键生成图片