WPF 3d坐标系和基本三角形

WPF中二维图形的坐标系将原点定位在呈现区域(通常是屏幕)的左上角。 在二维系统中,x 轴上的正值朝右,y 轴上的正值朝下。

三维坐标系中,原点位于呈现区域的中心,x 轴上的正值朝右, y 轴上的正值朝上,z 轴上的正值从原点向外朝向观察者。

如下;

 

在3D的世界里所有的东西都是用一些列的“三角形”来描述的。因为;

三角形是用来描述一个平面的最细微的几何体,渲染引擎能够依据每个三角形的材质以及场景中的灯光角度来计算它的颜色。

其实就是三点确定一个平面,在一个平面上做计算最简单,考虑的因素最少。如果用三维空间中大于三个点来做渲染基本单位,那么如果这些点不在同一个平面上的话,渲染计算是相当复杂的。

下面来画一个最基本三角形;

<MeshGeometry3D Positions="1,0,0 0,-1,0 0,0,1"/> ,定义了三角形的三个顶点;

<PerspectiveCamera Position="-2,2,2" LookDirection="2,-2,-2" UpDirection="0,1,0"/>

    定义了摄像机的位置和看的方向等;如果改变摄像机的位置,则如下;

先把坐标系整清楚;以及 <MeshGeometry3D Positions="1,0,0 0,-1,0 0,0,1"/> 是定义三个顶点的坐标,下回再整摄像机的位置等;

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>  
  
  <Viewport3D>
        <Viewport3D.Camera>
            <PerspectiveCamera Position="-2,2,2" LookDirection="2,-2,-2" UpDirection="0,1,0"/>
        </Viewport3D.Camera>
        <Viewport3D.Children>                                          
            <ModelVisual3D x:Name="Light">
                <ModelVisual3D.Content>
                    <AmbientLight/>
                </ModelVisual3D.Content>
            </ModelVisual3D>

        <ModelVisual3D> 
          <ModelVisual3D.Content> 
            <GeometryModel3D> 
                <GeometryModel3D.Geometry>
                  <MeshGeometry3D Positions="-1,0,0 0,-1,0 0,0,-1"/> 
                </GeometryModel3D.Geometry> 
                <GeometryModel3D.Material> 
                  <DiffuseMaterial Brush="Yellow" /> 
                </GeometryModel3D.Material> 
              </GeometryModel3D>
            </ModelVisual3D.Content>
        </ModelVisual3D>
       </Viewport3D.Children> 
</Viewport3D>

  </Grid>
</Page>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值