布雷森汉姆算法
Bresenham's algorithm
如何找到绘制抛物线、正弦曲线、钟形曲线等不同函数的决策参数?请告诉我为什么我们有时会乘以常数的方法?例如
- 在椭圆的情况下,上半部分和下半部分区域的p=a^2(d1-d2),p=b^2(d1-d2)
其中a、b常数 - 在直线的情况下,p=deltax(d1-d2),其中p是决策参数d1,d2是
距离,deltax是常数,等于xend-xstart
为什么不只取(d1-d2)作为参数
由OP声明的Bresenham算法有点错误,但我假设如下。
如果不是为了初始化决策参数,决策参数可以调整d1 - d2
,而不是像您建议的那样按某个常数缩放。它通常不能通过该常量进行扩展。
// code from http://en.wikipedia.org/wiki/Bresenham's_line_algorithm
plotLine(x0,y0, x1,y1)
dx=x1-x0
dy=y1-y0
D = 2*dy - dx // Not scalable by 2
plot(x0,y0)
y=y0
for x from x0+1 to x1
if D > 0
y = y+1
plot(x,y)
D = D + (2*dy-2*dx) // Scalable by 2
else
plot(x,y)
D = D + (2*dy) // Scalable by 2
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- C++A*算法并不总是在路径中具有目标节点
- 排序算法c++
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 算法问题:查找从堆栈中弹出的所有序列
- OpenGL:布雷森汉姆的线条绘制算法实现
- 布雷森汉姆线抽屉在渲染任何内容之前经过一定循环后崩溃
- 借助直接采样或布雷森汉姆类型采样在 3D 三角形上生成采样点
- 控制两个顶点之间的中间点数量 - 布雷森汉姆算法的扩展
- 多线程 - 彼得森算法不起作用
- 布雷森汉姆的球体
- 布雷森汉姆的中点算法,如何填补空白?
- 艾森伯格-麦奎尔算法分割错误的实现:C中的11
- OpenGL布雷森汉姆线
- 布雷森汉姆线算法与朴素向量加法
- 布雷森汉姆算法
- c++ 布雷森汉姆的线算法绘制弧形和旋转