MathNet Ray3D座標系下轉換
將一個Ray3D物件在兩個笛卡爾座標下進行轉換初探。嘗試了用CoordinateSystem.Transform(Ray3D ray) 的方法,但沒有得到期待結果。這款還是覺得現在這塊還有問題。
CoordinateSystem originCS = new CoordinateSystem();//初始一個笛卡爾座標系
Console.WriteLine("originCS" + originCS);
Angle angle = Angle.FromRadians(Math.PI/2);
CoordinateSystem rotationCS = originCS.RotateCoordSysAroundVector(UnitVector3D.ZAxis, angle);
Console.WriteLine("orginCS.RotateCoordSysAroundVector: " + rotationCS);
CoordinateSystem cs3 = rotationCS.OffsetBy(new Vector3D(5, 5, 0)); //轉換後的座標系
//實際是兩個座標系下轉換Matrix
CoordinateSystem mappingCS3ToOrigin = CoordinateSystem.CreateMappingCoordinateSystem(cs3, originCS);
CoordinateSystem mappingOriginToCS3 = CoordinateSystem.CreateMappingCoordinateSystem(originCS, cs3);
//點在兩座標系下的轉換
Point3D por = new Point3D(0, 8, 0);//origin中座標系下一點的座標
Point3D tcs = por.TransformBy(mappingCS3ToOrigin); //CS下座標
Point3D tor = tcs.TransformBy(mappingOriginToCS3); //origin下座標
Console.Out.WriteLine("tcs=" + tcs.ToString() + " tor=" + tor.ToString());
//抓換射線
Ray3D ray = new Ray3D(por, UnitVector3D.Create(-1, 1, 0));//origin
Console.Out.WriteLine("ray=" + ray);
Ray3D rayCS = new Ray3D(ray.ThroughPoint.TransformBy(mappingCS3ToOrigin),
ray.Direction.TransformBy(mappingCS3ToOrigin)); //cs3下了
Console.Out.WriteLine("rayCS=" + rayCS);
Ray3D rayback = new Ray3D(rayCS.ThroughPoint.TransformBy(mappingOriginToCS3),
rayCS.Direction.TransformBy(mappingOriginToCS3));
Console.Out.WriteLine("rayback=" + rayback);//origin下了
//執行部分結果
tcs=(3, 5, 0) tor=(-8.88178419700125E-16, 8, 0)
ray=ThroughPoint: (0, 8, 0), Direction: (-0.707106781186548, 0.707106781186548, 0)
rayCS=ThroughPoint: (3, 5, 0), Direction: (0.707106781186548, 0.707106781186548, 0)
rayback=ThroughPoint: (-8.88178419700125E-16, 8, 0), Direction: (-0.707106781186548, 0.707106781186548, 0)
相關文章
- Qt - 座標系及轉換QT
- 地心地固座標系(ECEF)與站心座標系(ENU)的轉換
- ArcEngine下投影座標和經緯度座標的相互轉換
- ogre世界座標魚螢幕座標相互轉換
- GIS中的座標系定義與轉換 (轉)
- ROS TF :使用 TF 設定機器人 釋出座標變換 使用座標變換 將感測器資料轉換為機器人座標系下ROS機器人
- 利用齊次座標進行二維座標轉換
- Python pytorch 座標系變換與維度轉換PythonPyTorch
- 座標系定義和相互轉換演算法演算法
- ArcGIS地圖投影與座標系轉換的方法地圖
- Go版本的各座標系互相轉換的工具Go
- OpenGL ES on iOS --- 座標系統與矩陣轉換iOS矩陣
- GPS座標轉換為BIM
- gcoord: 轉換WGS84、GCJ02、BD09座標,轉換百度高德地圖座標系GC地圖
- 三維空間座標系變換-旋轉矩陣矩陣
- 各種座標系互相轉換(WGS84轉換BD-09主要)
- 百度座標轉換API使用API
- C++ opencv的圓轉矩形,極座標轉笛卡爾座標系C++OpenCV
- OpenGL座標系與幾何變換
- 火星座標和正常座標之間的轉換
- 海康相機 畫素座標(px,py)到sdk ptz 座標轉換最後到onvif ptz座標
- pose座標變換
- iOS開發中常見定位座標轉換iOS
- iOS地球座標、火星座標和百度座標之間轉換(Swift3.0)iOSSwift
- iOS中地圖經緯度座標轉換iOS地圖
- 向量和矩陣的座標變換(下標記法)7矩陣
- 世界座標系到攝像機座標系的矩陣變換推導過程矩陣
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- ArcGIS中利用ArcMap將地理座標系轉換成投影座標系(從WKID=4326到WKID=102100)
- vue 實現高德座標轉GPS座標Vue
- 工程座標轉換方法C#程式碼實現C#
- 理解SVG transform座標變換SVGORM
- 理解SVG座標系統和變換: transform屬性SVGORM
- Excel轉百度座標系(AngularJS)ExcelAngularJS
- 三維座標系的旋轉矩陣矩陣
- 形象化理解笛卡爾座標系和極座標系
- SVG 座標系統SVG
- 座標系的生成