问:如何使用材料图像和贴图TexCoords创建vdPolyface/p>
创建带有材质图像并映射TexCoords的vdPolyface
解决方案
例子:
假设我们创建了一个图像’textcoords.png’看起来像 宽度xheigth = 2598×1732(纵横比/高度= 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),可以联系在线客服>>咨询相关问题。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!