#include "stdafx.h" #include "point.h" #include #include NAMESPACE_POINT_BEGIN (NAMESPACE_POINT) point::point() :x(0) ,y(0) { } point point::min_(const point&a,const point&b) { return bx-x; double dy=this->y-y; return sqrt(dx*dx+dy*dy); } double point::cos_k(const point&o)const { double dx=o.x-x; double dy=o.y-y; return dx/sqrt(dx*dx+dy*dy); } double point::sin_k(const point&o)const { double dx=o.x-x; double dy=o.y-y; return dy/sqrt(dx*dx+dy*dy); } point point::middle(const point&o)const { return point((x+o.x)/2,(y+o.y)/2); } std::tuple point::get_abc(const point&o)const { double cos=fabs(cos_k(o)); if(cos==0) return std::make_tuple(1,0,-x); if(cos==1) return std::make_tuple(0,1,-y); double dx=o.x-x; double dy=o.y-y; double k=dy/dx; double deno=sqrt(k*k+1); return std::make_tuple(k/deno,-1/deno,(y-k*x)/deno); //return std::make_tuple(k,-1,y-k*x); } NAMESPACE_POINT_END(NAMESPACE_POINT)