/// <summary>
/// 創建管線(不考慮高程)
/// </summary>
/// <param name="x1">起點經度</param>
/// <param name="y1">起點緯度</param>
/// <param name="z1">起點高程</param>
/// <param name="x2">終點經度</param>
/// <param name="y2">終點緯度</param>
/// <param name="z2">終點高程</param>
/// <param name="pipeCaiZhi">管線材質</param>
/// <param name="pipeGuanJing">管半徑</param>
/// <param name=""></param>
private void CreatPipe(double x1, double y1, double z1, double x2, double y2, double z2, string pipeCaiZhi, double pipeGuanJing )
{
try
{
//獲取兩點間距離
double pipeLength = SkyLineView.SgWorld.CoordServices.GetDistance(x1, y1, x2, y2);
//圓柱面數 越大越圓滑但渲染的也就越慢
int numOfSegments = 20;
IPosition66 origionPosition = SkyLineView.SgWorld.Creator.CreatePosition(x1, y1, 10);
IPosition66 tagerPosition = SkyLineView.SgWorld.Creator.CreatePosition(x2, y2, 10);
IPosition66 pipePosition = SkyLineView.SgWorld.CoordServices.GetAimingAngles(origionPosition, tagerPosition);
var thisPipe = SkyLineView.SgWorld.Creator.CreateCylinder(origionPosition, pipeGuanJing, pipeLength, NumOfSegments: numOfSegments, LineColor: 33023);
//因爲線是水平的必須旋轉90°
thisPipe.Position.Pitch = 90 - pipePosition.Pitch;
thisPipe.Position.Yaw = pipePosition.Yaw;
thisPipe.Position.Roll = pipePosition.Roll;
}
catch (Exception CC)
{
}
}
Skyline(c#)怎麼顯示三維管線
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.