當前位置:編程學習大全網 - 編程軟體 - C++編程計算點是否在三角形之內

C++編程計算點是否在三角形之內

#include?<iostream>

#include?<stdexcept>

//?判斷(x,?y),?(xx,?yy)是否在由(x1,?y1)和(x2,?y2)組成的直線的同壹側

bool?on_the_same_side(

int?const?x,

int?const?y,

int?const?xx,

int?const?yy,

int?const?x1,

int?const?y1,

int?const?x2,

int?const?y2

)?{

int?const

dx21?=?x2?-?x1,?dy21?=?y2?-?y1,

dx?=?x?-?x1,?dy?=?y?-?y1,

dxx?=?xx?-?x1,?dyy?=?yy?-?y1,

tmp?=?dxx*dy21?-?dyy*dx21;

if?(tmp?==?0)?throw?std::invalid_argument("不是三角形");

return

(dx*dy21?-?dy*dx21?>=?0)?==

(tmp?>?0);

}

int?main()?{

int?x1,?y1,?x2,?y2,?x3,?y3,?x,?y;

std::cin?>>?x1?>>?y1

>>?x2?>>?y2

>>?x3?>>?y3

>>?x?>>?y;

try?{

std::cout?<<?(

on_the_same_side(x,?y,?x3,?y3,?x1,?y1,?x2,?y2)?&&

on_the_same_side(x,?y,?x2,?y2,?x1,?y1,?x3,?y3)?&&

on_the_same_side(x,?y,?x1,?y1,?x2,?y2,?x3,?y3))?<<?"\n";

}

catch?(std::exception?const?&err)?{

std::cerr?<<?err.what()?<<?"\n";

return?__LINE__;

}

return?0;

}

  • 上一篇:為什麽在弄蜂鳴器播放音樂的代碼時會出現“arduino中錯誤redefinition of 'float durt1 []'”的錯誤呢?
  • 下一篇:qt的QLineEdit如何顯示輸入快捷鍵的鍵名,比如同時按ctrl和c,在QLineEdit裏面顯示 ctrl+c
  • copyright 2024編程學習大全網