• 斜二测画法的经验公式


    用斜二测画法画直观图,本质上就是把三维空间中图形的每个点投影到一个二维平面上(其实还需要先把 y 坐标除以 2, 但这不是重点)。投影之后坐标降到了二维,这样才有可能在二维的纸面上把点每个点画出来,从而把整个图形画出来。

    (斜二测画法,边长 200px 的立方体)

    当年学向量的时候推导了一些变换公式(当时还不知道矩阵乘法),顺便研究了一下怎么样通过计算画直观图而不是凭感觉。乱搞了一通蒙出一组式子来,基本上可以确定是对的:

    (left{egin{matrix}
    x' = x+frac{sqrt{2}}{4}y \
    y' = z+frac{sqrt{2}}{4}y
    end{matrix} ight.)

    (x, y, z) 表示空间中点的坐标,(x', y') 表示投影后纸面上一个 x 轴向右,y 轴(对应空间中的 z 轴)向上的坐标系中点的坐标。在这个坐标系中,可以画出 y = x 这条直线来表示空间中的 y 轴(图中 z 轴)。注意这个 y 轴是指向右上方的,也就是说这是一个左手系(其实左手系跟右手系在坐标运算上几乎没什么差别,只是向量外积不一样而已):

    (左手系和右手系,图片来自网络)

    上述式子只适用于左手系,但是稍加改造应该就能得到只适用于右手系的另一组式子。不过我懒得再推(试)了。

    写成变换矩阵的形式:

    (egin{bmatrix}
    x'\
    y'\
    z'
    end{bmatrix}=egin{bmatrix}
    1 & frac{sqrt{2}}{4} & 0 \
    0 & frac{sqrt{2}}{4} & 1 \
    0 & 0 & 0
    end{bmatrix}egin{bmatrix}
    x\
    y\
    z
    end{bmatrix})

  • 相关阅读:
    BGP--边界网关协议
    Paris Traceroute
    网站flash黑屏问题
    org.pentaho.di.ui.core.widget.PasswordTextVar
    java 金额计算,商业计算 double不精确问题 BigDecimal,Double保留两位小数方法
    spring mvc 利用匿名内部类构建返回json对象
    bootstrap3-typeahead 自动补全
    高德地图 省市区商圈数据
    小米wifi远程提交下载任务地址
    国外HTML网站模版(卖成品模版)
  • 原文地址:https://www.cnblogs.com/li-hua/p/4475157.html
Copyright © 2020-2023  润新知