2009年8月8日土曜日

外分点(externally dividing point)

公式

2点 P(x1, y1),Q(x2, y2)について、線分PQをm:nに外分する点Rは

C言語での実装

#include <stdio.h>
#include <math.h>

/* ---------------------------------------------
   2点p1,p2からなる線分をm:nに外分する点を求める (2次元)
   引数1: P 点の座標1
   引数2: Q 点の座標2
   引数3: m m:nのm
   引数4: n m:nのn
   引数5: result 外分点
   戻り値: 1 正常終了,0 異常終了
 ---------------------------------------------*/
int divide_externally_2D(double P[2],
        double Q[2], int m, int n, double R[2])
{
    if (m - n == 0) return 0;

    R[0] = (-n * P[0] + m * Q[0]) / (m - n);
    R[1] = (-n * P[1] + m * Q[1]) / (m - n);

    return 1;
}

/* main */
int main(void)
{
    double P[] = {1.0, 3.0};
    double Q[] = {2.0, 4.0};
    double R[2];
    int m = 2;
    int n = 3;

    divide_externally_2D(P, Q, m, n, R);
    printf("線分PQを%d:%dに外分する点R(%.2f, %.2f)\n", 
        m, n, R[0], R[1]);

    return 0;
}
実行例
2点P,Qからなる線分を2:3に外分する点R(-1.00, 1.00)

0 件のコメント:

コメントを投稿