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)的轉換
- Python pytorch 座標系變換與維度轉換PythonPyTorch
- GPS座標轉換為BIM
- ROS TF :使用 TF 設定機器人 釋出座標變換 使用座標變換 將感測器資料轉換為機器人座標系下ROS機器人
- 利用齊次座標進行二維座標轉換
- ArcGIS地圖投影與座標系轉換的方法地圖
- 座標系定義和相互轉換演算法演算法
- Go版本的各座標系互相轉換的工具Go
- 各種座標系互相轉換(WGS84轉換BD-09主要)
- 三維空間座標系變換-旋轉矩陣矩陣
- C++ opencv的圓轉矩形,極座標轉笛卡爾座標系C++OpenCV
- iOS開發中常見定位座標轉換iOS
- 海康相機 畫素座標(px,py)到sdk ptz 座標轉換最後到onvif ptz座標
- pose座標變換
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- Excel轉百度座標系(AngularJS)ExcelAngularJS
- 座標系
- 工程座標轉換方法C#程式碼實現C#
- vue 實現高德座標轉GPS座標Vue
- 向量和矩陣的座標變換(下標記法)7矩陣
- 世界座標系到攝像機座標系的矩陣變換推導過程矩陣
- WGS84、BD09、GCJ02座標轉換GC
- 傾斜攝影osgb格式檔案,進行座標轉換
- 座標系的生成
- SVG 座標系統SVG
- 形象化理解笛卡爾座標系和極座標系
- 張正友標定Opencv實現、標定流程以及影像座標轉為世界座標OpenCV
- gps wgs4座標與高德gcj02座標互轉GC
- canvas 座標系原點Canvas
- canvas座標系原點Canvas
- Proj4js wgs84與cgcs2000座標轉換示例JSGC
- OpenGL入門第三課--矩陣變換與座標系統矩陣
- Threejs的三維座標系JS
- OpenGL 座標系統詳解
- 【matplotlib 實戰】--平行座標系
- android自定義View——座標系AndroidView
- 向量和矩陣的座標變換7矩陣