C/C++の宿題を片付けます 59代目
■ このスレッドは過去ログ倉庫に格納されています
0535デフォルトの名無しさん
2006/02/01(水) 00:28:23int congruence(struct triangle *a, struct triangle *b) {
/* それぞれの辺の長さの2乗を求める(ルートは必要無い) */
double al[] = {(a->p1[0] - a->p2[0]) * (a->p1[0] - a->p2[0]) + (a->p1[1] - a->p2[1]) * (a->p1[1] - a->p2[1]),
(a->p1[1] - a->p2[1]) * (a->p1[1] - a->p2[1]) + (a->p1[2] - a->p2[2]) * (a->p1[2] - a->p2[2]),
(a->p1[2] - a->p2[2]) * (a->p1[2] - a->p2[2]) + (a->p1[0] - a->p2[0]) * (a->p1[0] - a->p2[0])};
double bl[] = {(b->p1[0] - b->p2[0]) * (b->p1[0] - b->p2[0]) + (b->p1[1] - b->p2[1]) * (b->p1[1] - b->p2[1]),
(b->p1[1] - b->p2[1]) * (b->p1[1] - b->p2[1]) + (b->p1[2] - b->p2[2]) * (b->p1[2] - b->p2[2]),
(b->p1[2] - b->p2[2]) * (b->p1[2] - b->p2[2]) + (b->p1[0] - b->p2[0]) * (b->p1[0] - b->p2[0])};
/* 3辺が等しければ合同 */
if (al[0] == bl[0] && al[1] == bl[1] && al[2] == bl[2] || al[0] == bl[1] && al[1] == bl[2] && al[2] == bl[0] || al[0] == bl[2] && al[1] == bl[0] && al[2] == bl[1]
|| al[0] == bl[2] && al[1] == bl[1] && al[2] == bl[0] || al[0] == bl[1] && al[1] == bl[0] && al[2] == bl[2] || al[0] == bl[0] && al[1] == bl[2] && al[2] == bl[1]) return 1;
else return 0;
}
■ このスレッドは過去ログ倉庫に格納されています