返回介绍

平移、旋转、透明度、纹理

发布于 2023-08-09 23:10:33 字数 2387 浏览 0 评论 0 收藏 0

平移、旋转、透明度、纹理:

           MxDraw3dMakeShape make = new MxDraw3dMakeShape();
            //绘制方块
            MxDraw3dShape shape2 = make.DoBox(0, 0, 0, 300, 300, 15);
            shape2.SetDisplayMode(1);
            //设置透明度
            shape2.Transparency = 0.5;
            axMxDrawX3d1.DrawEntity(shape2);
            axMxDrawX3d1.ZoomAll();
            //平移旋转构造
            MxDraw3dShapeTransformation r2 = new MxDraw3dShapeTransformation();
            //旋转基点坐标
            MxDraw3dPoint ptRot = new MxDraw3dPoint();
            ptRot.x = 1000;
            ptRot.y = 300;
            ptRot.z = 0;
            //旋转法向量
            MxDraw3dVector pvRot = new MxDraw3dVector();
            pvRot.x = 0;
            pvRot.y = 1;
            pvRot.z = 0;
            //平移函数绕基点向量轴旋转90
            r2.Rotation(ptRot, pvRot, 90 * 3.14159265 / 180.0);
            MxDraw3dShapeTransformation s2 = new MxDraw3dShapeTransformation();
            //平移基点
            MxDraw3dPoint ptMove = new MxDraw3dPoint();
            ptMove.x = 0;
            ptMove.y = 0;
            ptMove.z = 0;
            //缩放因子
            s2.scale(ptMove, 1.0);
            //平移向量
            MxDraw3dVector pvMove = new MxDraw3dVector();
            pvMove.x = -600;
            pvMove.y = 0;
            pvMove.z = 0;
            MxDraw3dShapeTransformation m2 = new MxDraw3dShapeTransformation();
            //于基点向量平移
            m2.Move(pvMove);
            //计算由m2和r2组成的转换
            m2.multiply(r2);
            m2.multiply(s2);
            shape2.TransformShape(m2);
            //创建纹理实体
            MxDraw3dTexturedShape ts2 = make.CreateTexturedShape(shape2);
            //读取纹理图片
            ts2.SetTextureFileName(@"K:\wood01.bmp");
            //启用纹理映射
            ts2.SetTextureMap(true);
            //缩放纹理(面部的百分比)。
            ts2.SetTextureScale(true, 1, 1);
            //设置每个面上纹理的出现次数。
            ts2.SetTextureRepeat(true, 1, 1);
            //更改纹理的原点(0,0)将被映射到曲面(UOrigin,VOrigin)
            ts2.SetTextureOrigin(true, 0, 0);
            ts2.SetDisplayMode(3);
            axMxDrawX3d1.DrawEntity(ts2);
            axMxDrawX3d1.ZoomAll();

运行:平移、旋转、透明度、纹理实例效果如下:

3d13.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文