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

做简单网站用什么软件有没有网站找人帮忙做图

做简单网站用什么软件,有没有网站找人帮忙做图,长安网站建设详细教程,wordpress 主题添加标签目录 1.效果展示 2.源码展示 3.代码逻辑详解 3.1 头文件与宏定义 3.2 HSV函数转RGB颜色函数 3.3 主函数 初始化部分 循环部分 线条绘制部分 刷新和延时部分 结束部分 4.小结 本篇博客主要介绍趣味编程用C语言实现万花筒小程序。 1.效果展示 2.源码展示 #define…

目录

 1.效果展示

2.源码展示 

3.代码逻辑详解

3.1 头文件与宏定义 

3.2  HSV函数转RGB颜色函数

 3.3 主函数

初始化部分

循环部分

线条绘制部分

刷新和延时部分

结束部分

4.小结 


本篇博客主要介绍趣味编程用C语言实现万花筒小程序。

 1.效果展示

 

2.源码展示 

#define _CRT_SECURE_NO_WARNINGS
#include <graphics.h>
#include <conio.h>
#include <math.h>#define PI acos(-1.0)
#define NUM_LINES 36     // 线条数量
#define BASE_RADIUS 250  // 基础半径// HSV转RGB颜色函数
COLORREF MHSVtoRGB(float H, float S, float V) {float C = V * S;float X = C * (1 - fabs(fmod(H / 60.0, 2) - 1));float m = V - C;float r, g, b;if (H >= 0 && H < 60) { r = C; g = X; b = 0; }else if (H >= 60 && H < 120) { r = X; g = C; b = 0; }else if (H >= 120 && H < 180) { r = 0; g = C; b = X; }else if (H >= 180 && H < 240) { r = 0; g = X; b = C; }else if (H >= 240 && H < 300) { r = X; g = 0; b = C; }else { r = C; g = 0; b = X; }return RGB((r + m) * 255, (g + m) * 255, (b + m) * 255);
}int main() {// 初始化图形窗口initgraph(800, 600);setbkcolor(BLACK);cleardevice();int cx = getwidth() / 2;   // 中心X坐标int cy = getheight() / 2;  // 中心Y坐标float angle = 0.0f;        // 全局旋转角度float hue = 0.0f;          // 颜色色相值// 启用批量绘制(防闪烁)BeginBatchDraw();while (!_kbhit()) {  // 按任意键退出cleardevice();// 更新全局参数angle += 0.005f;hue += 0.5f;if (hue >= 360) hue -= 360;// 绘制所有线条for (int i = 0; i < NUM_LINES; ++i) {// 计算当前线条角度偏移float offset = i * (2 * PI / NUM_LINES);// 计算动态半径(带波动效果)float radius = BASE_RADIUS * (1 + 0.2f * sin(angle * 3 + offset));// 计算起点和终点坐标float startAngle = angle + offset;float endAngle = startAngle + PI / 2;  // 终点角度偏移90度int x1 = cx + radius * cos(startAngle);int y1 = cy + radius * sin(startAngle);int x2 = cx + (radius * 0.6f) * cos(endAngle);int y2 = cy + (radius * 0.6f) * sin(endAngle);// 设置线条颜色(HSV色彩空间渐变)setlinecolor(MHSVtoRGB(fmod(hue + i * 10, 360), 0.8f, 1.0f));// 绘制线条line(x1, y1, x2, y2);}// 刷新批量绘制FlushBatchDraw();Sleep(10);}// 关闭图形窗口EndBatchDraw();closegraph();return 0;
}

3.代码逻辑详解

3.1 头文件与宏定义 
#define _CRT_SECURE_NO_WARNINGS
#include <graphics.h>
#include <conio.h>
#include <math.h>#define PI acos(-1.0)
#define NUM_LINES 36     // 线条数量
#define BASE_RADIUS 250  // 基础半径
  • #define _CRT_SECURE_NO_WARNINGS这是为了屏蔽 Visual Studio 中一些不安全函数的警告。
  • #include <graphics.h>引入 EasyX 图形库的头文件,该库用于实现图形绘制。
  • #include <conio.h>引入控制台输入输出库,其中的 _kbhit() 函数可用于检测是否有按键输入。
  • #include <math.h>引入数学库,使用其中的数学函数,如 sin()cos() 等。
  • PI:定义圆周率。
  • NUM_LINES:设定要绘制的线条数量。
  • BASE_RADIUS:设定线条绘制的基础半径。
3.2  HSV函数转RGB颜色函数
// HSV转RGB颜色函数
COLORREF MHSVtoRGB(float H, float S, float V) {float C = V * S;float X = C * (1 - fabs(fmod(H / 60.0, 2) - 1));float m = V - C;float r, g, b;if (H >= 0 && H < 60) { r = C; g = X; b = 0; }else if (H >= 60 && H < 120) { r = X; g = C; b = 0; }else if (H >= 120 && H < 180) { r = 0; g = C; b = X; }else if (H >= 180 && H < 240) { r = 0; g = X; b = C; }else if (H >= 240 && H < 300) { r = X; g = 0; b = C; }else { r = C; g = 0; b = X; }return RGB((r + m) * 255, (g + m) * 255, (b + m) * 255);
}
  • 该函数的作用是把 HSV(色相、饱和度、明度)颜色空间的颜色转换为 RGB 颜色空间的颜色。
  • H 代表色相,取值范围是 0 到 360;S 代表饱和度,取值范围是 0 到 1;V 代表明度,取值范围是 0 到 1。
  • 依据 H 的不同区间,计算出 rgb 的值,最后将其转换为 RGB 颜色值。
 3.3 主函数
int main() {// 初始化图形窗口initgraph(800, 600);setbkcolor(BLACK);cleardevice();int cx = getwidth() / 2;   // 中心X坐标int cy = getheight() / 2;  // 中心Y坐标float angle = 0.0f;        // 全局旋转角度float hue = 0.0f;          // 颜色色相值// 启用批量绘制(防闪烁)BeginBatchDraw();while (!_kbhit()) {  // 按任意键退出cleardevice();// 更新全局参数angle += 0.005f;hue += 0.5f;if (hue >= 360) hue -= 360;// 绘制所有线条for (int i = 0; i < NUM_LINES; ++i) {// 计算当前线条角度偏移float offset = i * (2 * PI / NUM_LINES);// 计算动态半径(带波动效果)float radius = BASE_RADIUS * (1 + 0.2f * sin(angle * 3 + offset));// 计算起点和终点坐标float startAngle = angle + offset;float endAngle = startAngle + PI / 2;  // 终点角度偏移90度int x1 = cx + radius * cos(startAngle);int y1 = cy + radius * sin(startAngle);int x2 = cx + (radius * 0.6f) * cos(endAngle);int y2 = cy + (radius * 0.6f) * sin(endAngle);// 设置线条颜色(HSV色彩空间渐变)setlinecolor(MHSVtoRGB(fmod(hue + i * 10, 360), 0.8f, 1.0f));// 绘制线条line(x1, y1, x2, y2);}// 刷新批量绘制FlushBatchDraw();Sleep(10);}// 关闭图形窗口EndBatchDraw();closegraph();return 0;
}
初始化部分
  • initgraph(800, 600):初始化一个大小为 800x600 的图形窗口。
  • setbkcolor(BLACK):把窗口背景颜色设置为黑色。
  • cleardevice():清除当前绘图设备。
  • cx 和 cy:计算窗口的中心坐标。
  • angle:全局旋转角度,初始值为 0。
  • hue:颜色色相值,初始值为 0。
  • BeginBatchDraw():开启批量绘制,避免画面闪烁。
循环部分
  • while (!_kbhit()):只要没有按键输入,就持续循环。
  • cleardevice():每次循环都清除绘图设备,为绘制新画面做准备。
  • angle += 0.005f 和 hue += 0.5f:更新全局旋转角度和颜色色相值。
  • if (hue >= 360) hue -= 360:确保色相值在 0 到 360 之间循环。
线条绘制部分
  • for (int i = 0; i < NUM_LINES; ++i):循环绘制所有线条。
  • offset = i * (2 * PI / NUM_LINES):计算每条线条的角度偏移。
  • radius = BASE_RADIUS * (1 + 0.2f * sin(angle * 3 + offset)):计算动态半径,使线条有波动效果。
  • startAngle 和 endAngle:计算线条的起点和终点角度。
  • x1y1x2y2:计算线条的起点和终点坐标。
  • setlinecolor(MHSVtoRGB(fmod(hue + i * 10, 360), 0.8f, 1.0f)):设置线条颜色,实现 HSV 色彩空间的渐变。
  • line(x1, y1, x2, y2):绘制线条。
刷新和延时部分
  • FlushBatchDraw():刷新批量绘制,将绘制的内容显示在窗口上。
  • Sleep(10):延时 10 毫秒,控制动画的速度。
结束部分
  • EndBatchDraw():结束批量绘制。
  • closegraph():关闭图形窗口。

4.小结 

 以上便是本篇博客的所有内容,如果大家觉得这篇博客能带来知识,还请给博主点点赞。

 


文章转载自:

http://srgyqdhC.jcffp.cn
http://cPFT1wCv.jcffp.cn
http://MOBEj6xB.jcffp.cn
http://zLPSTfr6.jcffp.cn
http://KYCKhDSf.jcffp.cn
http://ho7527uq.jcffp.cn
http://SsZlh72w.jcffp.cn
http://9hdvwA6M.jcffp.cn
http://diVfCLSj.jcffp.cn
http://XNzBTzNR.jcffp.cn
http://wLvXtMJx.jcffp.cn
http://lKFZp6Vo.jcffp.cn
http://BoW5tXtK.jcffp.cn
http://HykJUts0.jcffp.cn
http://oojSaKZN.jcffp.cn
http://susZgFAS.jcffp.cn
http://bouKDCi7.jcffp.cn
http://ST7smJmi.jcffp.cn
http://MmNfMopp.jcffp.cn
http://0MTCG9HR.jcffp.cn
http://fTOu0Krn.jcffp.cn
http://VdC1ezRM.jcffp.cn
http://2anDVKBq.jcffp.cn
http://AdaNmAGq.jcffp.cn
http://S98r0HsL.jcffp.cn
http://x59ocv42.jcffp.cn
http://KogcSbs3.jcffp.cn
http://R8Hvr1Sg.jcffp.cn
http://Whnw7R7V.jcffp.cn
http://pdC79OHT.jcffp.cn
http://www.dtcms.com/wzjs/616010.html

相关文章:

  • 西宁做网站长沙网站搭建公司联系方式
  • 做网站 服务器个人博客网站设计
  • 网页的网站建设在哪里萍乡做网站
  • 中山手机网站设计网站建设公司要多少钱
  • 建设软件资源网站北京做网站好的网站建设公司
  • 网站要怎么盈利一个网站能卖多少钱?
  • 徐州营销型网站建设安康网站开发
  • 如何做一网站首页石家庄做外贸的网站建设
  • 品牌网站建设黑白I狼J做亚马逊和淘宝网站
  • wordpress 双栏主题网站关键词排名手机优化软件
  • 牡丹江做网站的公司天助可以搜索别人网站
  • 行业资讯网站源码电商系统的服务商
  • 营销型网站建设策划书万网董事长是谁
  • 网站制作公司官网首页外贸公司网站建设
  • 营销网站建设培训做网站需要编程吗
  • 网站优化要做哪些工作网站排名配色
  • 中小企业网站用什么技术如何建设股权众筹网站
  • 电子商务网站开发的流程图网站模板下载百度云链接怎么做
  • 大连市城乡建设档案馆网站大型网页设计服务公司
  • 摄影作品发布平台更新网站 seo
  • 商业空间设计案例商用营销型网站建设优化建站
  • 网站建立策划书无印良品官方网络商城
  • 呼和浩特网站建设价格深圳和胜建设公司
  • 中国石油工程建设有限公司网站网站上职业学校排名 该怎么做
  • 开发制作小程序公司seo企业顾问
  • 苏州企业建站系统菏泽百度网站建设
  • 廊坊网站推广外包网站怎么做浏览量才会多
  • dede织梦做的网站 栏目页有切换js 怎么循环子栏目 调子栏目青岛建站软件
  • 网站建设公司运营模式聊城开发区建设局网站
  • 微信公众号上微做网站邯郸企业做网站费用