使用質心座標系遍歷三角形內部全部點

若是咱們想遍歷一個三角形內部的全部點,在知道三個頂點的座標的時候,應該怎麼作? spa

質心座標系
x爲頂點,p爲座標系中的某一點。code

,咱們說是p的質心座標。 ip

對於頂點而言,它的質心座標是rem

質心座標不是惟一的也是p的質心座標。 get

當座標非負時,p位於頂點所構成的凸包中。 it

對於要求的座標,它們是仿射座標,被稱爲絕對重心座標。class

任何點的笛卡爾座標都是三角形頂點笛卡爾座標的加權平均值。遍歷

頂點座標爲A,B,C。則在三角形內某一點P = a*A+b*B+c*C,其中a+b+c=1im

double a = 1.0 / max_edge_length; //最長邊的長度
for (double p = 0; p < 1; p += a)
{
    for (double q = 0; q < 1 - p; q += a)
    {
        int p_x = p*A.x() + q*B.x() + (1 - p - q)*C.x();
        int p_y = p*A.y() + q*B.y() + (1 - p - q)*C.y();
    }
}
相關文章
相關標籤/搜索