2009年8月9日日曜日

三角形の重心(Triangle’s center of gravity)

公式

A(x1, y1),B(x2, y2),C(x3, y3)のとき△ABCの重心Gの座標は

C言語での実装

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

/* ---------------------------------------------
   3点A,B,Cからなる三角形の重心を求める (2次元)
   引数1: A 点の座標1
   引数2: B 点の座標2
   引数3: C 点の座標3
   引数5: G 重心
   戻り値: 重心の先頭アドレス
 ---------------------------------------------*/
double *triangle_center_of_gravity(double A[2],
        double B[2], double C[2], double G[2])
{
    G[0] = (A[0] + B[0] + C[0]) / 3.0;
    G[1] = (A[1] + B[1] + C[1]) / 3.0;
    return G;
}

/* main */
int main(void)
{
    double A[] = {0.0, 1.0};
    double B[] = {-1.0, 0.0};
    double C[] = {1.0, 0.0};
    double G[2];

    triangle_center_of_gravity(A, B, C, G);
    printf("3点A,B,Cからなる三角形の重心G(%.2f, %.2f)\n",
        G[0], G[1]);

    return 0;
}
実行例
3点A,B,Cからなる三角形の重心G(0.00, 0.33)

0 件のコメント:

コメントを投稿