Ich studiere etwas Code und ich möchte Hilfe mit etwas Mathe. Im Versuch, die Gleichung der Tangente auf einem Kreis mit gegebenem Tangentenpunkt zu lösen.Wie man Variablen aus einer Gleichung extrahiert?
bearbeiten: hier ist die ganze Funktion, vielleicht wird es helfen. Mein Lehrer hat es mir gegeben zu studieren, aber vielleicht wird er mich Trolling: D
const std::pair<double, double> Arc::tangentEquation(const glm::vec3& center, const glm::vec3& pointA, float radius) const {
if (radius <= 0.0f)
throw std::domain_error("Radius can't be negative or 0");
// Jednadžba tangente u točki T
// (x1 - p)(x - p) + (y1 - q)(y - q) = r^2
glm::vec3 point = pointA + center;
double px = -1 * (center.x * point.x);
double qy = -1 * (center.y * point.y);
double x = point.x - center.x;
double y = point.y - center.y;
double k = 0.0;
double l = (pow(radius, 2) - (px + pow(center.x, 2) + qy + pow(center.y, 2)));
if (y == 0) { // paralelan s x os
k = l/x;
l = 0;
} else if (x == 0) { // paralelan s y os
l = l/y;
k = 0;
} else {
k = -x/y;
l = l/y;
}
return std::pair<double, double>(k, l);
}
warum schreiben Sie es so lange so? und das '-1 *' ist redundant, weil nur ein einfaches Minus funktioniert –
ich denke, es bezieht sich auf die Extraktion von x aus der Gleichung? – dranec