如何从方程式提取变量
How to extract variables from a equation?
我正在研究一些代码,我想帮助一些数学。我试图以给定的切相点在圆上求解切线的方程。
//(x1 - p)(x - p) +(y1 - q)(y - q) = r^2 I understand this formula
//variables
//x1 = point.x
//y1 = point.y
//p = center.x
//q = center.y
//r = radius
编辑:这是整个功能,也许会有所帮助。我的老师给我学习,但也许他在拖着我: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);
}
代码不会在第一行上实现公式,所以我认为您不理解这并不奇怪: - )
(x1 - p)(x - p) + (y1 - q)(y - q)
如果我们在括号乘法中写出所有术语,我们会得到:
x1*x - p*x - p*x1 + p^2 + y1*y - q*y - q*y1 + q^2
(https://www.youtube.com/watch?v=3S_LROR5_1U,用于非常教育的解释)但是您的代码将丢失这些条款的一半....?
相关文章:
- 遍历对象向量,并找到与从文本文件中提取的对象匹配的变量
- 如何从字符数组C++中提取2个整数并将它们存储在2个变量中(初学者)
- 如何使用boost :: program_options提取环境变量
- C 正则是从脚本文件中提取变量
- 每"x"秒从C++程序中提取变量的值
- CUDD:提取变量排序
- 从输入文件 c++ 中提取和设置变量
- C :提取分析数学表达式的符号/变量
- 如何从方程式提取变量
- 从变量中提取八位字节int64_t
- 提取运算符 (>>) 可以覆盖变量吗?
- 将常用表达式提取到变量中
- 从字符串中提取不同的数据类型变量
- 从结构或类中提取成员变量
- 将 Lua 中的变量提取到C++中
- 如何正确从uint16_t变量中提取一个特定位
- 带有变量参数的提取函数
- 提取字符串的一部分并将部分放入字符数组和另一个字符串变量C++
- 如何从保存在.c,.cpp文件中的c,c++代码中提取变量名
- 从'C'程序中提取变量定义和变量引用