彩票走势图

VDF常见问题整理(六十九):在vectordraw如何使用材料图像和贴图TexCoords创建vdPolyface?

翻译|使用教程|编辑:鲍佳佳|2021-05-17 11:59:33.263|阅读 163 次

概述:本文主要讲述如何创建带有材质图像并映射TexCoords的vdPolyface

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

VectorDraw Developer Framework(VDF)是一个用于应用程序可视化的图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。

下载VectorDraw Developer Framework(VDF)

问:如何使用材料图像和贴图TexCoords创建vdPolyface

创建带有材质图像并映射TexCoords的vdPolyface

解决方案

例子:

假设我们创建了一个图像'textcoords.png'看起来像 宽度xheigth = 2598x1732(纵横比/高度= 1.5)

遵循创建新的vdPolyface的代码,该vdPolyface表示1x1x1大小的盒子 并将图像的各个部分映射到每个面孔 注意:假设图像坐标为左下= 0,0和右上= 1,1


//盒子角点
                gPoints pts = new gPoints();
                //底点
                pts.Add(new gPoint(0,0,0));
                pts.Add(new gPoint(1,0,0));
                pts.Add(new gPoint(1,1,0));
                pts.Add(new gPoint(0,1,0));
                //最高点
                pts.Add(new gPoint(0,0,1));
                pts.Add(new gPoint(1,0,1));
                pts.Add(new gPoint(1,1,1));
                pts.Add(new gPoint(0,1,1));
                Int32Array facelist = new Int32Array(new int [] {
                    //注意:更改 
                    1,2,3,4,-1,//底部
                    5,6,7,8,-1,//顶部
                    1,2,6,5,-1,//前
                    3,4,8,7,-1,//返回
                    4,1,5,8,-1,//左
                    2,3,7,6,-1,//右
                });

                //注意:假设图像坐标为左下= 0,0和右上= 1,1
                // --->(相对于图像左下方的纹理坐标)
                // 0.0 0.33 0.66 1.0 
                //
                // 1 | ---- | ---- | ---- |
                // | -A-- | -B-- | -C-- |
                //0.5 | ---- || ---- | ---- |
                // | -D-- | -E-- | -F-- |
                // 0 | ---- | ---- | ---- |


                DoubleArray texcoords = new DoubleArray(new double [] {
                    0.0,0.5,0.33,0.5,0.33,1.0,0.0,1.0,//底部一个字母
                    0.33,0.5,0.66,0.5,0.66,1.0,0.33,1.0,//顶B字母
                    0.66,0.5,1.0,0.5,1.0,1.0,0.66,1.0,//前C字母
                    0.0,0.0,0.33,0.0,0.33,0.5,0.0,0.5,//后退D字母
                    0.33,0.0,0.66,0.0,0.66,0.5,0.33,0.5,//左E字母
                    0.66,0.0,1.0,0.0,1.0,0.5,0.66,0.5,//右F字母
                });
                vdPolyface pf =新的vdPolyface(doc,pts,facelist){TexCoords = texcoords};
                vdColor pfcolor =新的vdColor(Color.Blue);
                pfcolor.MaterialImage = doc.Images.Add(@“ textcoords.png”);
                pf.PenColor = pfcolor;
                doc.Model.Entities.AddItem(pf);
                doc.RenderMode = vdRender.Mode.Render;

                doc.Redraw(true);


=======================================================

如果您对想要购买正版授权VectorDraw Developer Framework(VDF),可以联系咨询相关问题。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP