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

无锡网站建设制作方案去哪找人做网站

无锡网站建设制作方案,去哪找人做网站,wordpress 预览 404,哈尔滨网站建设服务简介 在计算机图形学的世界中,有很多方法可以使程序的界面更加吸引人。在本篇博客中,我将向大家介绍如何使用 EasyX 图形库在 C 中创建一个动态的爱心背景。这不仅是一个简单的动画效果,它还包括背景的星星、旋转的心形以及一个美观的背景渐…

简介

在计算机图形学的世界中,有很多方法可以使程序的界面更加吸引人。在本篇博客中,我将向大家介绍如何使用 EasyX 图形库在 C++ 中创建一个动态的爱心背景。这不仅是一个简单的动画效果,它还包括背景的星星、旋转的心形以及一个美观的背景渐变。


工具介绍:EasyX 图形库

EasyX 是一个简单易用的 C++ 图形库,特别适合初学者和那些想要快速为其应用程序添加图形的开发者。它提供了一系列函数,可以帮助你绘制形状、设置颜色和实现动画效果。


设计目标

我们的目标是创建一个动态的爱心,它会在背景中旋转。背景将有一个从深空蓝渐变到黑色的效果,并散布有颜色各异的小星星。

图片展示


开始编码

定义星星的结构

每颗星星都有其坐标、颜色和亮度。我们使用一个 struct 来表示:

struct Star {int x, y;COLORREF color;float intensity;float intensityChange;
};

3.2 心形绘制函数

我们使用参数方程来绘制心形,并为它添加了旋转效果:

void DrawHeart(int x, int y, COLORREF color, float scale, float angle) {BeginBatchDraw();  // 开始批量绘制const int thickness = 2;  // 调整这个值来改变心形的粗细for (float t = 0; t < 2 * 3.14159; t += 0.01) {float x_cord = scale * (16 * pow(sin(t), 3));float y_cord = scale * -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t));// 旋转float rotatedX = x_cord * cos(angle) - y_cord * sin(angle);float rotatedY = x_cord * sin(angle) + y_cord * cos(angle);for (int dx = -thickness; dx <= thickness; dx++) {for (int dy = -thickness; dy <= thickness; dy++) {putpixel(x + rotatedX + dx, y + rotatedY + dy, color);}}}EndBatchDraw();  // 结束批量绘制,并显示在前台
}

主函数逻辑

main() 函数中,我们首先初始化 EasyX 的图形窗口。接着,我们随机生成一组星星,并存储它们的属性。在主循环中,我们绘制背景渐变、星星和心形,并实现心形的动态效果。


源代码分享

#include <graphics.h>
#include <conio.h>
#include <math.h>
#include <vector>struct Star {int x, y;COLORREF color;float intensity;float intensityChange;
};// 修改后的心形公式函数
void DrawHeart(int x, int y, COLORREF color, float scale, float angle) {BeginBatchDraw();  // 开始批量绘制const int thickness = 2;  // 调整这个值来改变心形的粗细for (float t = 0; t < 2 * 3.14159; t += 0.01) {float x_cord = scale * (16 * pow(sin(t), 3));float y_cord = scale * -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t));// 旋转float rotatedX = x_cord * cos(angle) - y_cord * sin(angle);float rotatedY = x_cord * sin(angle) + y_cord * cos(angle);for (int dx = -thickness; dx <= thickness; dx++) {for (int dy = -thickness; dy <= thickness; dy++) {putpixel(x + rotatedX + dx, y + rotatedY + dy, color);}}}EndBatchDraw();  // 结束批量绘制,并显示在前台
}int main() {// 初始化图形窗口initgraph(640, 480);setbkcolor(BLACK); // 设置背景色为黑色cleardevice();     // 清空屏幕// 创建星星const int numStars = 100;std::vector<Star> stars;for (int i = 0; i < numStars; i++) {Star star = {rand() % 640,rand() % 480,RGB(rand() % 256, rand() % 256, rand() % 256),(rand() % 100) / 100.0f,(rand() % 5 + 1) / 500.0f};stars.push_back(star);}float scale = 10;bool increase = true;COLORREF heartColor = RED;float angle = 0;BeginBatchDraw();  // 开始批量绘制while (!_kbhit()) { // 直到有键被按下cleardevice(); // 清空屏幕// 绘制渐变背景for (int i = 0; i < 480; i++) {float ratio = (float)i / 480;COLORREF bgColor = RGB(0, 0, ratio * 50);setlinecolor(bgColor);line(0, i, 640, i);}// 绘制星星for (auto& star : stars) {star.intensity += star.intensityChange;if (star.intensity > 1 || star.intensity < 0.5) {star.intensityChange = -star.intensityChange;}COLORREF modifiedColor = RGB(GetRValue(star.color) * star.intensity, GetGValue(star.color) * star.intensity, GetBValue(star.color) * star.intensity);putpixel(star.x, star.y, modifiedColor);}if (increase) {scale += 0.1;}else {scale -= 0.1;}if (scale > 15 || scale < 10) {increase = !increase;}// 改变心的颜色int r = GetRValue(heartColor);int g = GetGValue(heartColor);int b = GetBValue(heartColor);r = (r + 1) % 256;g = (g + 2) % 256;b = (b + 3) % 256;heartColor = RGB(r, g, b);DrawHeart(320, 240, heartColor, scale, angle);angle += 0.005; // 调整这个值来改变旋转速度Sleep(10);EndBatchDraw();  // 结束批量绘制,并显示在前台}closegraph();return 0;
}

结果

当你运行上述代码时,你将看到一个美丽的动态背景,上面有一个不断旋转的爱心和一群闪烁的星星。通过调整参数,你可以轻松改变动画的速度、颜色和其他属性。


参考资源:

  1. EasyX 官方文档
  2. 心形参数方程
http://www.yayakq.cn/news/818520/

相关文章:

  • 网页设计与网站开发试题答案宜昌网站建设哪个公司好
  • 免费asp网站源码优化资讯
  • 网站建设服务预算做内贸的网站
  • 手机微信网站开发微信怎么做淘客网站
  • 外贸公司网站源码吉林市网站制作
  • linux国外网站吗十堰英文网站建设
  • 做网站需要看啥书新津网站建设
  • 天津建设网站培训百度短网址生成
  • 进一步加强网站内容建设阿里巴巴的网站怎么做
  • 商城网站模板库怎么查看一个网站是哪家公司做的
  • wordpress文章上作者广州排名seo公司
  • 深圳坪地网站建设 自助建站 五合一建站平台百度竞价账户
  • 学做衣服的网站有哪些wordpress手机版主题无效
  • 做彩票网站需要什么条件app界面设计流程
  • 网站建设用哪种语言好重庆装修除渣费一般多少
  • 链接网站logo为什么网站要域名解析
  • 建设网站企业网上银行苏州专业做网站公司电话
  • 聚牛网站建设公司小企业网站建设哪家便宜
  • 搜启网站建设网站负责人幕布照片
  • wap网站还用吗app备案查询网站
  • 民宿客栈网站制作科技志愿信息平台
  • 开化网站建设代码需求网站
  • soho建网站 必须先注册公司吗logo设计公司汉狮怎么样
  • 做外贸没有网站需要注意什么条件专业的做网站
  • 建设工程施工安全网站城阳做网站找哪家
  • 珠海网站建设培训班廊坊关键词seo排名方案
  • 如何查网站pv公司网站开发项目外包方案
  • 影视网站建设中国手机网站建设公司
  • 可以用AI做网站上的图吗惠州论坛网站建设
  • 常州做网站建设精品电商网站建设