计算机图形学基础(1)——画线算法
来源:互联网 发布:中国移动免流量软件 编辑:程序博客网 时间:2024/06/05 17:58
画线算法
- DDA(数值微分法)
void DDALine(int x0,int y0,int x1,int y1){ float delta,x,y,dx,dy; dx = x1-x0; dy = y1-y0; delta = dy/dx; y = y0; x = x0; if(delta>=1){ //斜率大于等于1 for(y=y0;y<=y1;y++){ DrawPixel(int(x+0.5),y); x+=1./delta; } } else for(x=x0;x<=x1;x++){ //斜率小于1 DrawPixel(x,int(y+0.5)); y+=delta; }}
- 中点画线法
void MidPointLine(int x0,int y0,int x1,int y1){ int a,b,x,y,d,delta1,delta2,k; a = y0-y1; b = x1-x0; x = x0; y = y0; k = (y1-y0)>=(x1-x0)?-1:1; DrawPixel(x,y); if(k==1){ //斜率为0~1 delta1 = 2*a; delta2 = 2*(a+b); d = 2*a+b; while(x<x1){ if(d<0){ x++; y++; d+=delta2; } else{ x++; d+=delta1; } DrawPixel(x,y); } } else{ //斜率为1~∞ delta1 = 2*b; delta2 = 2*(a+b); d = a+2*b; while(y<y1){ if(d>0){ x++; y++; d+=delta2; } else{ y++; d+=delta1; } DrawPixel(x,y); } }}
- Bersenham画线算法(e=k-0.5)
void BersenhamLine(int x0,int y0,int x1,int y1){ int x,y,dx,dy,e; x = x0; y = y0; dx = x1-x0; dy = y1-y0; e = 2*dy - dx; //new_e = 2*e*dx,此处代码里出现的均为new_e while(x<x1){ DrawPixel(x,y); x++; e+=2*dy; if(e>=1){ y++; e-=2*dx; } }}
没有图,有点无聊,附上喜欢的图:
ps3大神绝景版,水墨渲染厉害了
阅读全文
1 0
- 计算机图形学基础(1)——画线算法
- 中点画线算法(计算机图形学)
- 计算机图形学之画线算法
- Bresenham画线算法(计算机图形学)
- 计算机图形学基础(2)——画圆,椭圆算法
- 计算机图形学笔记-三种画线算法
- 计算机图形学-实验2-Bresenham画线算法
- 计算机图形学(二)输出图元_3_画线算法_3_Bresenham画线算法
- 计算机图形学 -- 画线算法 [DDA] [中点画线] [Bresenham]
- 【win32】计算机图形学——中点法画线和八分法画圆
- 计算机图形学:窗口画线
- 计算机图形学 学习笔记(一):光栅图形学算法:直线扫描算法(DDA,中点画线算法,Bresenham算法)
- 计算机图形学(二)输出图元_3_画线算法_2_DDA算法
- 计算机图形学之DDA画线算法Bresenham算法程序
- 计算机图形学(二)输出图元_3_画线算法_1_直线方程
- 计算机图形学(二)输出图元_4_并行画线算法
- 计算机图形学之数字微分分析画线算法
- 计算机图形学04一一OpenGL Bresenham画线算法
- 点击返回键:弹出退出的对话框和双击两次返回键,退出
- 欢迎使用CSDN-markdown编辑器
- POJ 2102 Incredible! Impossible! 笔记
- 商城项目实战01:使用maven构建工程
- HTTP 协议中的 Transfer-Encoding
- 计算机图形学基础(1)——画线算法
- Intellij idea远程debug连接tomcat,实现单步调试
- Android 双击退出键 退出返回主界面
- 网页端生成二维码的实现方式
- android中点击系统返回键退出
- 线程
- 电机控制 学习文件 path1.c
- Python Socket 网络编程
- Activity的四种启动模式