//retorna cotovelo em relacao ao ombro, usa matematica levemente pesada, cuidado ao mexer Ponto Shooter::getJunta(Ponto superior, Ponto inferior, double tamanhoSuperior, double tamanhoInferior) { double a = tamanhoSuperior; double b = tamanhoInferior; double d = distance(superior,inferior); double area = areaTriangle(a,b,d); double ylinha = 2.0*area/d; double xlinha = sqrt(a*a-ylinha*ylinha); double sinTheta = (inferior.y-superior.y)/d; double cosTheta = (inferior.x-superior.x)/d; Ponto ret; ret.x = (cosTheta*xlinha-sinTheta*ylinha); ret.y = (sinTheta*xlinha+cosTheta*ylinha); return ret; }
float Triangle::area() const { return areaTriangle(p0,p1,p2); }