永发信息网

ArcGIS Engine怎样对MultiPatch进行旋转操作

答案:2  悬赏:10  手机版
解决时间 2021-02-15 08:29
  • 提问者网友:暮烟疏雨之际
  • 2021-02-14 23:31
ArcGIS Engine怎样对MultiPatch进行旋转操作
最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-02-15 00:00
对一个MultiPatch 进行旋转 Private Sub RotateMultipatch() Dim pMultipatch As IMultiPatch '创建一个MultiPatch 要素 Set pMultipatch = createSinglePartMultipatchViaIConstructMultipatch Dim dPi As Double dPi = Atn(1) * 4 Dim pTran3D As ITransform3D Set pTran3D = pMultipatch Dim p3DVect As IVector3D Set p3DVect = New Vector3D p3DVect.SetComponents 0, 0, 100 '将MultiPatch 旋转一定的角度 pTran3D.RotateVector3D p3DVect, dPi / 2 End Sub '创建一个MultiPatch 要素 Private Function createSinglePartMultipatchViaIConstructMultipatch() As IMultiPatch Dim pConstructMultiPatch As IConstructMultiPatch Set pConstructMultiPatch = New MultiPatch Dim pERingColl As IPointCollection Set pERingColl = New Ring Dim pPtE(12) As IPoint Dim i As Long For i = 0 To 12 Set pPtE(i) = New Point Next pPtE(0).PutCoords 0, 0 pPtE(0).Z = 0 pPtE(1).PutCoords 0, 100 pPtE(1).Z = 0 pPtE(2).PutCoords 20, 100 pPtE(2).Z = 0 pPtE(3).PutCoords 20, 80 pPtE(3).Z = 0 pPtE(4).PutCoords 10, 80 pPtE(4).Z = 0 pPtE(5).PutCoords 10, 55 pPtE(5).Z = 0 pPtE(6).PutCoords 15, 55 pPtE(6).Z = 0 pPtE(7).PutCoords 15, 45 pPtE(7).Z = 0 pPtE(8).PutCoords 10, 45 pPtE(8).Z = 0 pPtE(9).PutCoords 10, 20 pPtE(9).Z = 0 pPtE(10).PutCoords 20, 20 pPtE(10).Z = 0 pPtE(11).PutCoords 20, 0 pPtE(11).Z = 0 pPtE(12).PutCoords 0, 0 pPtE(12).Z = 0 pERingColl.AddPoints 13, pPtE(0) Dim pGonColl As IGeometryCollection Set pGonColl = New Polygon pGonColl.AddGeometry pERingColl Dim pZA As IZAware Set pZA = pGonColl pZA.ZAware = True pConstructMultiPatch.ConstructExtrude 10, pGonColl Set createSinglePartMultipatchViaIConstructMultipatch = pConstructMultiPatch End Function
全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-02-15 01:19
我。。知。。道 加。。我。。私。。聊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯