三角測量によって座標を求める方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
taka0011

三角測量によって座標を求める方法

#1

投稿記事 by taka0011 » 8年前

C言語初心者です。C言語で、座標が分からないある地点(x,y)と、座標が分かっているxy座標3点との距離を入力すると、三角測量によって地点(x,y)の座標を求めるプログラムを作りたいと考えております。三角測量のやり方はなんとなくは分かるんですが(円周角の定理を使ったり垂直二等分線を使ったり)、今日一日悩みましたがどうプログラムにおこせばいいのかがわかりません。もしよろしければ計算部分のプログラムを教えていただけないでしょうか。よろしくお願いします。

Re

Re 三角測量によって座標を求める方法

#2

投稿記事 by Re » 8年前

コード:

#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);


}
小数点以下の値がつくものは入れられないものですが
距離は二乗した値を入れて下さい

閉鎖

“C言語何でも質問掲示板” へ戻る