0

我想在一个圆圈上找到 Y 值。给定的是中心、半径和一些 X 值。例如:中心是 10,10,半径是 5。如果 X=(centerX - radius),X=centerX - radius +1,则 Y 值是多少,... X = centerX + radius。我明白每个 X 会有 2 个结果。我需要这个方程来使用 Arduino(C++)在 LED 矩阵上画一个圆圈

从公式开始

(x-a)² + (y-b)² = r²

在哪里

r = radius
a = centerX
b = centerY
x = x coordinate of point on circle
y = y coordinate of point on circle

y 的方程应该是:

y = sq(r²-x² + 2a - a² + 2b - b²)

但是我的矩阵上没有一个圆圈……当我为某些 x 值手动计算 y 时,在取平方根之前,我大多会得到一个负数。当然,负数的平方根不存在。当然编译器不会给出任何错误信息。

y = sq((r * r) - (x * x) + (2 * a) - (a * a) + (2 * b) - (b * b))
4

1 回答 1

0

坚持住,坚持住!:) 让我首先更正我的代码......而不是使用“sq”,我应该使用“ sqrt ”......我会很快回到这里让你知道这是否是罪魁祸首......感谢那些谁阅读并试图找到解决方案...

哦...在我的等式中也发现了一个缺陷... (xa)² + (yb)² = r²

(yb)² = r² - (xa)² (好吗?)

y² - 2by + b² = r² - (xa)²(OK?)

y² - 2by = r² - (xa)² -b² (OK?)

现在我们在左边有两次 y ......我不能将其中一个 y 转移到右边,因为结果会在等式中,对吧?所以现在怎么办 ???

于 2019-08-03T10:37:43.087 回答