Ric*_*ard 5 c# math linear-algebra
我不太确定我做错了什么,因为这应该相当简单......我有2个给定点加上第三个X - 现在我需要从第三行得到Y.
这是一个非常简单的等式:y = mx + b.但是因为我不能在我的C#程序中使用它(好吧,我确定它有一个库,但性能很重要),我正在尝试"编写公式".
我的功能看起来像这样:
public static float GetY(Vector2 point1, Vector2 point2, float x)
{
var m = (point2.Y - point1.Y) / (point2.X + point1.Y);
var b = point1.Y - (m * point1.X);
return m*x + b;
}
Run Code Online (Sandbox Code Playgroud)
现在这个公式中的某些内容是错误的,因为有时候我没有得到正确的价值.你知道我做错了什么吗?
Jac*_*cob 10
在您发布的代码中,您似乎犯了一个错字.这个:
var m = (point2.Y - point1.Y) / (point2.X + point1.Y);
Run Code Online (Sandbox Code Playgroud)
...应该:
var m = (point2.Y - point1.Y) / (point2.X - point1.X);
Run Code Online (Sandbox Code Playgroud)
你要这个:
public static float GetY(Vector2 point1, Vector2 point2, float x)
{
var dx = point2.X - point1.x; //This part has problem in your code
if (dx == 0)
return float.NaN;
var m = (point2.Y - point1.Y) / dx;
var b = point1.Y - (m * point1.X);
return m*x + b;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8157 次 |
| 最近记录: |