在 JavaScript 中获取填充椭圆的点

发布于 2024-11-26 05:00:53 字数 148 浏览 1 评论 0原文

我想知道是否有人可以指出我如何生成填充椭圆或圆形的点的正确方向。

我知道绘制轮廓的算法,但也不知道绘制内容。

我所需要的只是一系列点。但我不知道从哪里开始,而且似乎无法在谷歌上找到我的答案。

非常感谢任何帮助。

谢谢。

I was wondering if anyone could point me in the right direction as to how I would generate the points of a filled ellipse or circle.

I know of algorithms to draw the outline, but not the contents as well.

All I require are an array of points. But I have no idea where to start and can't seem to find my answer on Google.

Any help is much appreciated.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

走野 2024-12-03 05:00:53

您知道轮廓的点,因此您可以按行(即按 y 坐标)对它们进行排序。当两个y坐标相等时,按x坐标排序。

现在,对于具有相同 y 坐标的两个点,您知道它们之间的所有点都必须位于椭圆内。

You know the points of the outline, so you could just sort them by line (i.e. by the y-coordinate). When the two y-coordinates are equal, sort them by x-coordinate.

Now, for two points with the same y-coordinate you know that all points between them must be in the ellipse.

三月梨花 2024-12-03 05:00:53

您可以通过扫描线生成点。椭圆的方程是

ax2 + by2 + c = 0

因此迭代y 并求解 x。您将得到一个具有两个解的 x 二次方程,为您提供扫描线左端和右端的点。其间的所有点都在椭圆内部。

如果您想快速生成端点的坐标,请参阅 John Kennedy 的论文,一种快速 Bresenham 型算法用于绘制椭圆

You can generate the points by scanline. The equation of an ellipse is

ax2 + by2 + c = 0

So iterate over the values of y and solve for x. You'll get a quadratic equation in x with two solutions, giving you the points at the left and right end of the scanline. All the point in between are inside the ellipse.

If you want fast generation of the coordinates for the endpoints, see John Kennedy's paper, A fast Bresenham-type algorithm for drawing ellipses.

滥情稳全场 2024-12-03 05:00:53

您可能想看看像 jsDraw2d 这样的图形库。

http://jsdraw2d.jsfiction.com/

虽然更有效的方法可能是使用 Javascript 生成 SVG 图像,但不幸的是 Internet Explorer 最高版本 8 不支持 SVG。

You may want to have a look at some graphics library like jsDraw2d

http://jsdraw2d.jsfiction.com/

A more efficient method though is probably to use Javascript to generate SVG images but unfortunately Internet Explorer up to version 8 does not support SVG.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文