bresenham

    0热度

    1回答

    我目前正在参加图形的入门课程,并且正在学习使用Bresenham算法绘制直线。现在我必须承认,我的学习习惯涉及谷歌搜索额外的笔记,因为有时在课堂笔记中仅仅是不够的。 我知道用一般的Bresenham算法你可以画出第一个八分圆,为了画出其他八分圆,你必须做一些奇特的技巧。 现在,我真正的问题涉及到如何理解在第七个八分圆中画一条线的概念。根据这些笔记 https://courses.engr.illi

    3热度

    2回答

    当使用Bresenham line drawing algorithm, 画线时,行可能不在要写入的位图范围内 - 剪切结果以便它们适合要写入的图像的轴对齐边界将很有用。 尽管可能首先将线条剪切为矩形,然后绘制线条。这是不理想的,因为它往往会给线(假设使用int coords)略有不同。 由于这是一个如此简单的操作,是否已经建立了在保持相同形状的同时剪切线的方法? 如果有帮助,here is a

    0热度

    1回答

    我看了很多地方,并没有找到任何资源(我明白)解释如何将标准的中点圆算法(使用八分圆来创建整个圆)变成只考虑特定的“切片”圈。我正在使用它来查找视线半径内的瓦片。 我正在使用的代码是如何实现算法的基本维基百科代码。 我正在使用内部的“处理”Java原型的东西了。 我想知道这个算法是如何工作的,所以我可以修改它,但我遇到了麻烦。

    0热度

    1回答

    我创建了一个函数,该函数接受矢量中的2个点的2D std::vector,并在矢量内“绘制”一条线。但是,它并不涵盖所有情况(八分圆)。一条线我的意思是直线相互连接的点。该矢量将被写入.ppm文件,因此它在图像中显示为一条线。 我实现了使用这个链接此功能:https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm 看这里:https://e

    -2热度

    1回答

    我想创建一个基于GUI的程序,它使用网格和Bresenham的圆形算法绘制椭圆。但是,我有两个问题。一个是我无法获得panel_grid刷新,以便将新的r值传递给GridComponent,并使用新的半径重新绘制椭圆。第二个问题是,我设法让代码生成一个圆,但我无法弄清楚如何修改它来生成一个椭圆。有人可以一步一步向我解释我将如何解决这两个问题吗?提前致谢。 public class GUI exte

    2热度

    2回答

    Bresenham's line drawing algorithm是众所周知的,实施起来相当简单。 虽然有更高级的方法来绘制反退色线条,但是Im有兴趣编写一个基于浮点坐标绘制单个像素宽度非反锯齿线条的函数。 这意味着当第一个和最后一个像素保持不变时,它们之间绘制的像素将根据两个端点的子像素位置产生偏差。 原则上这应该不是那么复杂,因为我假设可以使用子像素偏移来计算绘制线条时要使用的初始值erro

    0热度

    1回答

    我想用2个步进电机(42H48)和2个驱动器(TB6560)绘制圆。 硬件是这样的:现在 (y-axis motor) | | --—--- |-------- (x-axis motor) | | ,我只能控制这些马达绘制像钻石形状。 // 1 digitalWrite(xAxisMotorDirection, HIGH);

    1热度

    2回答

    我有一些代码来生成网格坐标(SDL_Point只包含两个int S代表X和Y)与圆形: std::vector<SDL_Point> circle(const SDL_Point & start, const int radius) { int x{ radius }, y{ 0 }; int xChange{ 1 - 2 * radius }; int yChan

    0热度

    2回答

    我需要像素化/从封闭的2D多边形获得点。不勾勒,但用“像素”体素填充,以检索它们的位置作为点。 现在我有用于线栅格的C#代码,有没有类似于多边形的方法?

    -1热度

    1回答

    我想用Bresenham的线算法或类似的方法从四个点创建一个填充的矩形,以获得平滑的边。我在Stack Overflow [link]上遇到了这个答案,它非常适合在两点之间创建一条线。我如何使用/修改这个函数来创建一个填充矩形?有没有其他算法可以更好地满足我的需求?