ここから本文です

プログラミングの質問です。空欄の部分の数式を1/2*|x1*y2-x2*y1|としたいときどう...

ソースさん

2020/6/2915:31:25

プログラミングの質問です。空欄の部分の数式を1/2*|x1*y2-x2*y1|としたいときどう書けばよいですか?

y2-x2,プログラミング,y-1,x-1,空欄

閲覧数:
19
回答数:
2

違反報告

回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

2020/6/3015:01:57

その公式は点aの座標をx1,y1とし、点bの座標をx2,y2としたときの面積を求める公式でしょう。

実際は点aと点bはstruct vec2で与えられるので置き換えればいいのです。
x1はa.xに該当します。
y1はa.yに該当します。

x2はb.xに該当します。
y2はb.yに該当します。

s = 1/2*|x1*y2-x2*y1| を置きかえると
s = 1/2*|a.x*b.y-b.x*a.y| になります。
C言語では整数同士の計算は小数点は切り捨てられてしまいます。
1/2ではなく1/2.0とします。
浮動小数点の絶対値はfabsで得られます。

よって
s = 1/2.0*fabs(a.x*b.y-b.x*a.y);
もしくは
s = fabs(a.x*b.y-b.x*a.y)/2.0
または(fabsの返り値はdoubleなので浮動小数点演算になる)
s = fabs(a.x*b.y-b.x*a.y)/2
または
s = fabs(a.x*b.y-b.x*a.y)*0.5

柊木さん

2020/6/2915:43:55

abs関数(絶対値を出力する関数)を使ってはいかがでしょうか
0.5*abs((x1*y2-x2*y1))
多分これでできそうですけど

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

本文はここまでです