三角測量によって座標を求める方法
三角測量によって座標を求める方法
C言語初心者です。C言語で、座標が分からないある地点(x,y)と、座標が分かっているxy座標3点との距離を入力すると、三角測量によって地点(x,y)の座標を求めるプログラムを作りたいと考えております。三角測量のやり方はなんとなくは分かるんですが(円周角の定理を使ったり垂直二等分線を使ったり)、今日一日悩みましたがどうプログラムにおこせばいいのかがわかりません。もしよろしければ計算部分のプログラムを教えていただけないでしょうか。よろしくお願いします。
Re 三角測量によって座標を求める方法
#include <stdio.h>
void main(void) {
printf("1地点目:\n");
int a,b,c;
printf("x座標:");
scanf("%d",&a);
printf("y座標:");
scanf("%d",&b);
printf("1地点目との距離^2:");
scanf("%d",&c);
int az,bz,cz;
az=-2*a;
bz=-2*b;
cz=a*a+b*b-c;
printf("2地点目:\n");
int a2,b2,c2;
printf("x座標:");
scanf("%d",&a2);
printf("y座標:");
scanf("%d",&b2);
printf("2地点目との距離^2:");
scanf("%d",&c2);
int az2,bz2,cz2;
az2=-2*a2;
bz2=-2*b2;
cz2=a2*a2+b2*b2-c2;
printf("3地点目:\n");
int a3,b3,c3;
printf("x座標");
scanf("%d",&a3);
printf("y座標");
scanf("%d",&b3);
printf("3地点目との距離^2:");
scanf("%d",&c3);
int az3,bz3,cz3;
az3=-2*a3;
bz3=-2*b3;
cz3=a3*a3+b3*b3-c3;
int d=az-az2;
int e=bz-bz2;
int f=cz-cz2;
int g=az-az3;
int h=bz-bz3;
int i=cz-cz3;
float x=(float)(f*h-i*e)/(g*e-d*h);
float y=(float)(d*i-f*g)/(e*g-d*h);
printf("x=%f\ny=%f",x,y);
}
距離は二乗した値を入れて下さい