簡體   English   中英

如何圍繞固定點旋轉增強幾何?

[英]How to rotate boost geometry around a fixed point?

我是使用 boost 的新手。 我想寫一個 function 來圍繞一個固定點旋轉幾何。 我試圖提升官方示例,但我無法弄清楚這是如何工作的,因為它說

Rotate 將幾何圖形圍繞固定點(例如原點)旋轉指定角度

在官方頁面中。

這是我的代碼:

namespace trans = bg::strategy::transform;

point_2d p4;

trans::rotate_transformer<bg::degree, double, 2, 2> rotate(angle);
bg::transform(p, p4, rotate);

但是我不明白把固定點放在哪里? 還是我必須再次翻譯、旋轉和翻譯?

提前致謝。

boost庫允許簡單的2D轉換,例如平移,圍繞原點旋轉,縮放......所以在你的情況下,你必須將你的點的坐標表達為固定點P的參考(通過翻譯{- xp, -yp}),然后旋轉它,最后將新坐標表示為原點參考(再次是平移 {xp, yp})。 最好的問候, 阿諾

要相對於固定點(順時針)旋轉幾何圖形,可以使用 matrix_transformer:

bg::strategy::transform::matrix_transformer<double, 2, 2> trans(
            cos(angle), sin(angle), x0,
           -sin(angle), cos(angle), y0,
            0,          0,          1);
boost::geometry::transform(raw, result, trans);

(x0, y0) 是固定點的坐標,angle 是指定的角度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM