#include #include "R2Graph.h" void inCircle( const R2Point& a, const R2Point& b, const R2Point& c, R2Point& center, double& radius ); int main() { std::cout << "Enter 3 vertices of triangle:" << std::endl; R2Point a, b, c; std::cin >> a >> b >> c; R2Point center; double radius; inCircle(a, b, c, center, radius); std::cout << "Inscribed circle:" << std::endl; std::cout << "center = " << center << ", radius = " << radius << std::endl; return 0; } void inCircle( const R2Point& a, const R2Point& b, const R2Point& c, R2Point& center, double& radius ) { R2Vector ab = b - a; ab.normalize(); R2Vector ac = c - a; ac.normalize(); R2Vector bisa = ab + ac; R2Vector ba = a - b; ba.normalize(); R2Vector bc = c - b; bc.normalize(); R2Vector bisb = ba + bc; intersectStraightLines( a, bisa, b, bisb, center ); radius = center.distanceToLine(a, b - a); }