当前位置: 首页 > news >正文

头歌实践教学平台:CG1-v2.0-直线绘制

第1关:直线光栅化-DDA画线算法

一.任务描述

1.本关任务

(1)根据直线DDA算法补全line函数,其中直线斜率0<k<1; (2)当直线方程恰好经过P(x,y)和T(x,y+1)的中点M时,统一选取直线上方的T点为显示的像素点。

2.输入

(1)直线两端点坐标:(13, 20)和(180,140); (2)直线颜色为白色。

3.输出

程序运行结果为一条直线,具体结果如下图所示:

test

二.相关知识

1.绘制点函数

image.set(x, y, color)函数是绘制点的函数,参数包括x、y和color。参数x为绘制点的x坐标,参数y为绘制点的y坐标,参数color为绘制点的颜色。

2.DDA算法

DDA算法相关知识点,请参考教材与课件或有关资料。

三.操作说明

(1)按要求补全line函数; (2)点击窗口右下角"测评"按钮,等待测评结果,如果通过后可进行下一关任务。


开始你的任务吧,祝你成功!

四、实验代码

#include "tgaimage.h"const TGAColor white = TGAColor(255, 255, 255, 255);
const TGAColor red = TGAColor(255, 0, 0, 255);void line(int x0, int y0, int x1, int y1, TGAImage &image, TGAColor color)
{// Please add the code here/********** Begin ********/int x;float y,k,dx,dy;dx=x1-x0,dy=y1-y0;k=dy/dx;y=y0;for(x=x0;x<=x1;x++){image.set(x,int(y+0.5),color);y+=k;}/********** End *********/
}int main(int argc, char** argv)
{TGAImage image(640,480, TGAImage::RGB);line(13, 20, 180, 140, image, white);image.flip_vertically(); // i want to have the origin at the left bottom corner of the imageimage.write_tga_file("../img_step1/test.tga");return 0;
}

http://www.lryc.cn/news/350066.html

相关文章:

  • Nacos+GateWay 搭建微服务架构
  • 【2024华为HCIP831 | 高级网络工程师之路】刷题日记(18)
  • 在抖音做电商,没有货源,不懂直播怎么办?分享一种解决方案!
  • 基于单片机的智能安防系统设计(32+4G+WIFI版)-设计说明书
  • 云服务器配置mysql允许被远程连接从而使用图形化界面
  • 【软件测试】需求概念|软件的⽣命周期|开发模型|测试模型
  • SQL中的LAG函数与LEAD函数用法
  • 数据结构------二叉树经典习题1
  • 汇聚荣:拼多多长期没有流量如何提高?
  • Chrome的常用操作总结
  • dvwa靶场 JavaScript Attacks(js攻击)全难度教程(附代码分析)
  • Flutter 中的 checkboxListTile 小部件:全面指南
  • 前馈神经网络FNN、多层感知机MLP和反向传播推导
  • QML笔记八
  • 运维别卷系列 - 云原生监控平台 之 00.prometheus 监控汇总
  • 信息系统安全与对抗-网络侦查技术与网络扫描技术(期末复习简答题)
  • 【python量化交易】—— Alpha选股策略 - Qteasy自定义交易策略【附源码】
  • 简单记录下:Navicat 导出表结构至 Excel
  • 黑马基于Web-socket的java聊天室基本解析
  • 【操作系统期末速成】​内存管理|内存的装入模块在装入内存的方式|分配管理方式|页面置换算法|页面置换
  • 图和网络笔记
  • 请求外部系统报错
  • 电路板维修【四】
  • (程序设计语言)传值、传引用
  • 一次基类类型对象无法被传递问题的分析
  • windows设置Redis服务后台自启动
  • 掌握Linux常用命令,扫平面试需求障碍
  • c语言之文件打开模式
  • 与禹老师学前端vue3学习汇总
  • Linux网络编程——HTTP协议的理解与运用