分享

WPF的三维变换应用(3)

 xyjackxjw 2013-05-09

WPF的三维变换应用(3)

2008-08-27 18:26 佚名 MSDN 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

本主题描述如何向 Windows Presentation Foundation (WPF) 图形系统中的三维模型应用变换。开发人员可以借助于变换功能来对模型进行重定位、调整大小和重定向,而无需更改用来定义模型的基值。

AD: 2013大数据全球技术峰会低价抢票中

缩放变换
ScaleTransform3D 沿着指定的缩放向量,相对于中心点来更改模型的比例。可以指定等比缩放,即在 X、Y 和 Z 轴上将模型缩放同样的值来按比例更改模型的大小。例如,将该变换的 ScaleX、ScaleY 和 ScaleZ 属性设置为 0.5 会将此模型二等分;将这些属性设置为 2 会将此模型在所有这三个轴上的值放大一倍。

ScaleVector 示例


通过指定非等比变换(X、Y 和 Z 值不相等的缩放变换),可以使模型在一个或两个维度上拉伸或收缩,而不会影响其他维度。例如,如果将 ScaleX、ScaleY 和 ScaleZ 分别设置为 1、2 和 1,则将导致变换模型的高度增加一倍,但是 X 和 Z 轴上的值仍保持不变。

默认情况下,ScaleTransform3D 会导致顶点围绕原点 (0,0,0) 拉伸或收缩。但是,如果要变换的模型不是从原点绘制的,那么,在从原点缩放模型时,模型将不会“就地”缩放。相反,当模型的顶点与缩放向量相乘时,缩放操作对模型的平移和缩放都会产生影响。

缩放中心示例

若要“就地”缩放模型,请通过设置 ScaleTransform3D 的 CenterX、CenterY 和 CenterZ 属性来指定模型的中心。这可确保图形系统缩放模型空间,然后平移该空间,使其在指定的 Point3D 上居中。相反,如果模型是围绕原点生成的,而且您指定了一个不同的中心点,则将看到模型会背离原点平移。

旋转变换
可以通过几种不同的方法来旋转三维模型。典型的旋转变换指定一个轴以及围绕该轴的旋转角度。使用 RotateTransform3D 类,可以用 Rotation 属性来定义 Rotation3D。然后可以在 Rotation3D(在本例中为 AxisAngleRotation3D)上指定 Axis 和 Angle 属性来定义变换。下面的几个示例围绕 Y 轴将模型旋转 60 度。

  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多