Engine·¢½Ì³Ì - ͼÎÄ ÏÂÔØ±¾ÎÄ

ͨ¹ý·ÃÎÊ3D·ûºÅ¿â£¬»ñÈ¡3DSymbolÀ´äÖȾµã£¬°ÑÈýά·ûºÅ·ÅÖÃÔÚµãµÄλÖôӶøÉú³É

Multipatch.

ÏÂͼΪMultiPatch¶ÔÏóµÄÌùͼԭÀí£º

ͼ13

½ÓÏÂÀ´¸ø´ó¼Ò½éÉÜͨ¹ýGeneralMultiPatchCreator´´½¨Ò»¸öÓÐÎÆÀíMultiPatchµÄ·½·¨£ºÐè

ҪʹÓÃÒÔÏÂÈý¸ö¶ÔÏó£º

GeometryMaterial:ÓÃÓÚ¹¹½¨²ÄÖÊ,ͨ¹ýIGeometryMaterial´´½¨µÄ²ÄÖÊ¿ÉÒÔ×÷ΪTextureLineSymbol»òÕß TextureFillSymbolÊôÐÔÓÃÀ´´´½¨ÕâЩ·ûºÅ£¬Ò²¿ÉÒÔ°ÑËüÌí¼Óµ½GeometryMaterialList¶ÔÏóÖÐ,ÓÃÓÚGeneralMultipatchCreator¶ÔÏó¹¹½¨Multipatch¶Ô

Ïó¡£

GeometryMaterialList:²ÄÖʶÔÏóµÄÈÝÆ÷ÓÃÓÚGeneralMultiPatchCreator¶ÔÏóµ÷ÓÃInit·½

·¨Ê±Ê¹Óá£

GeneralMultiPatchCreator:ÓÃÓÚ´´½¨ÓÐÎÆÀíµÄÌùͼµÄMultipatch.¡£

ÒÔÏ´úÂëÆ¬¶ÎÑÝʾÈçºÎ´´½¨Ò»¸öMultiPatch¶ÔÏó

///

///

¹¹½¨Multipatch¼¸ºÎ¶ÔÏó

///

///

·µ»ØMultipatch¼¸ºÎ¶ÔÏó

public IMultiPatch CreateMultipatch()

{

try

{

//´´½¨Í¼ÐβÄÖʶÔÏó

IGeometryMaterial texture = new GeometryMaterialClass();

texture.TextureImage = @\;

//´´½¨²ÄÖÊÁбí¶ÔÏó

IGeometryMaterialList materialList = new GeometryMaterialListClass();

//Ïò²ÄÖÊÁбíÌí¼Ó²ÄÖÊ

materialList.AddMaterial(texture);

//´´½¨GeneralMultiPatchCreator¶ÔÏó

IGeneralMultiPatchCreator multiPatchCreator = new GeneralMultiPatchCreatorClass();

multiPatchCreator.Init(4, 1, false, false, false, 4, materialList);

//ÉèÖÃPart:¿ÉÒÔʹÈý½ÇÉÈ»ò»·

multiPatchCreator.SetPatchType(0, esriPatchType.esriPatchTypeTriangleStrip);

multiPatchCreator.SetMaterialIndex(0, 0);

multiPatchCreator.SetPatchPointIndex(0, 0);

multiPatchCreator.SetPatchTexturePointIndex(0, 0);

//´´½¨ÕæÊµpoints.

WKSPointZ upperLeft = new WKSPointZ();

WKSPointZ lowerLeft = new WKSPointZ();

WKSPointZ upperRight = new WKSPointZ();

WKSPointZ lowerRight = new WKSPointZ();