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

母婴 网站 策划百度pc网页版

母婴 网站 策划,百度pc网页版,北京文化传媒有限公司网站建设,企业电子网站的建设案例目录 1.序言 2.代码展示 3.代码详解 3.1 头文件包含 3.2 绘制坐标轴函数 3.3 main 函数主体部分 4. 小结 1.序言 2025年的第一篇博客就用这个笛卡尔心形图开篇吧,寓意着新年大家能够有心有所属,祝诸位程序猿 / 程序媛 能够早点遇到自己的另一半。…

目录

 1.序言

2.代码展示

3.代码详解

3.1 头文件包含

3.2 绘制坐标轴函数 

3.3 main 函数主体部分

4. 小结


 1.序言

2025年的第一篇博客就用这个笛卡尔心形图开篇吧,寓意着新年大家能够有心有所属,祝诸位程序猿 / 程序媛 能够早点遇到自己的另一半。 

2.代码展示

#define _CRT_SECURE_NO_WARNINGS#include <graphics.h>
#include <conio.h>
#include <math.h>#define WIDTH	640					// 窗口宽度
#define HEIGHT	480					// 窗口高度
#define PI		3.14159265			// π
#define DISPLAY 3					// 展示出来动圆与定圆的交点及心脏线当前所在点的尺寸
#define ARROW	5					// 箭头的尺寸
#define COPIES	600					// 份数,看要获得心形线上的多少个点
#define SECONDS 5					// 跑完一圈的秒数
using namespace std;// 画坐标抽
void drawCoordinateAxis()
{setlinecolor(DARKGRAY);line(WIDTH / 2, HEIGHT / 10, WIDTH / 2, HEIGHT / 10 * 9);line(WIDTH / 2, HEIGHT / 10, WIDTH / 2 + ARROW, HEIGHT / 10 + ARROW);line(WIDTH / 2, HEIGHT / 10, WIDTH / 2 - ARROW, HEIGHT / 10 + ARROW);line(WIDTH / 5, HEIGHT / 2, WIDTH / 5 * 4, HEIGHT / 2);line(WIDTH / 5 * 4, HEIGHT / 2, WIDTH / 5 * 4 - ARROW, HEIGHT / 2 - ARROW);line(WIDTH / 5 * 4, HEIGHT / 2, WIDTH / 5 * 4 - ARROW, HEIGHT / 2 + ARROW);
}int main()
{initgraph(WIDTH, HEIGHT);BeginBatchDraw();setlinecolor(BLUE);// 画坐标轴,定圆double r = min(WIDTH, HEIGHT) / 9;circle(WIDTH / 2, HEIGHT / 2, r);drawCoordinateAxis();setrop2(R2_XORPEN);double lastX = WIDTH / 2.0, lastY = HEIGHT / 2 - r;					// 上一个心形线的点的 x,y 值,初始值为 y 轴正方向上距原点 a 个单位长度的点for (double a = 0; !_kbhit(); a += PI / COPIES * 2)					// a 为当前弧度{double x = cos(3.0 / 2.0 * PI + a) * 2 * r + WIDTH / 2;			// 动圆这一个循环的圆心的 x 值double y = sin(3.0 / 2.0 * PI + a) * 2 * r + HEIGHT / 2;		// 动圆这一个循环的圆心的 y 值double FixedPoint_X = cos(PI / 2.0 + a * 2) * r + x;			// 当前循环动圆的定点对应的 x 值double FixedPoint_Y = sin(PI / 2.0 + a * 2) * r + y;			// 当前循环动圆的定点对应的 y 值double Contact_X = cos(PI / 2.0 + a) * r + x;					// 当前循环两圆切点在动圆上对应的 x 值double Contact_Y = sin(PI / 2.0 + a) * r + y;					// 当前循环两圆切点在动圆上对应的 y 值// 画出心形线,只用画这一个循环的点和上一个循环的点的线就行setrop2(R2_COPYPEN);setlinecolor(YELLOW);line(lastX, lastY, FixedPoint_X, FixedPoint_Y);setrop2(R2_XORPEN);lastX = FixedPoint_X;lastY = FixedPoint_Y;// 动圆与定圆的切点setfillcolor(GREEN);solidcircle(Contact_X, Contact_Y, DISPLAY);// 心形线当前点setfillcolor(LIGHTRED);solidcircle(lastX, lastY, DISPLAY);// 动圆setlinecolor(BLUE);circle(x, y, r);FlushBatchDraw();Sleep((double)(1000 * SECONDS) / (double)COPIES + 0.5);// 消除动圆setlinecolor(BLUE);circle(x, y, r);// 消除动圆与定圆的交点setfillcolor(GREEN);solidcircle(Contact_X, Contact_Y, DISPLAY);// 消除心形线当前所在点setfillcolor(LIGHTRED);solidcircle(lastX, lastY, DISPLAY);}_getch();EndBatchDraw();return 0;
}

3.代码详解

3.1 头文件包含
  • 包含了<graphic.h>头文件,这是用于图形绘制相关操作的库
  • <conio.h>头文件提供了一些控制台输入输出相关的函数,例如:_kbit_getch 等,用于检测键盘输入以及获取字符等操作。
  • <math.h>头文件包含数学相关的函数,像 sin ,cos 等三角函数在这里都会被用到。

3.2 绘制坐标轴函数 
// 画坐标抽
void drawCoordinateAxis()
{setlinecolor(DARKGRAY);line(WIDTH / 2, HEIGHT / 10, WIDTH / 2, HEIGHT / 10 * 9);line(WIDTH / 2, HEIGHT / 10, WIDTH / 2 + ARROW, HEIGHT / 10 + ARROW);line(WIDTH / 2, HEIGHT / 10, WIDTH / 2 - ARROW, HEIGHT / 10 + ARROW);line(WIDTH / 5, HEIGHT / 2, WIDTH / 5 * 4, HEIGHT / 2);line(WIDTH / 5 * 4, HEIGHT / 2, WIDTH / 5 * 4 - ARROW, HEIGHT / 2 - ARROW);line(WIDTH / 5 * 4, HEIGHT / 2, WIDTH / 5 * 4 - ARROW, HEIGHT / 2 + ARROW);
}

这个函数的功能是绘制坐标轴。首先通过 setlinecolor(DARKGRAY)设置线条颜色为深灰色,然后绘制纵轴:

  • 从窗口高度的十分之一位置到十分之九位置绘制一条垂直的直线作为纵轴主体(line(WIDTH)/ 2,HEIGHT / 10,HEIGHT / 10 * 9)
  • 接着在纵轴顶端绘制向上和向下的箭头,通过两条斜线来实现

 在绘制横轴:

  • 从窗口的五分之一位置到五分之四位置绘制一条水平的直线作为横轴主体。(line(WIDTH / 5,HEIGHT / 2,WIDTH / 5 *4,HEIGHT / 2))
  • 最后在横轴有段绘制向左或向右的箭头
3.3 main 函数主体部分
  • 初始化图形窗口与相关设置
int main()
{initgraph(WIDTH, HEIGHT);BeginBatchDraw();setlinecolor(BLUE);

首先通过 initgraph(WIDTH,HIGHT) 初始化一个指定宽度和高度(由前面宏定义 WIDTHHEIGHT 确定)。接着调用 BeginBatchDraw() 开始批量绘图模式,这种模式可以减少图形绘制过程中的闪烁现象,提高显示效果。追后通过 setlinecolor(BLUE)设置后续绘制线条的颜色为蓝色。

  • 设置绘图模式与初始化相关变量 
    setrop2(R2_XORPEN);double lastX = WIDTH / 2.0, lastY = HEIGHT / 2 - r;                  // 上一个心形线的点的 x,y 值,初始值为 y 轴正方向上距原点 a 个单位长度的点

通过 setrop2(R2_XORPEN) 设置绘图的光栅操作模式后为异或模式(XOR),这种模式在后续绘制图形是可以方便地实现图形的叠加和擦除效果。然后初始化 lastX lastY ,它们用于记录上一个绘制的心形线点的坐标,初始值设定为在 y 轴正方向上距离原点定圆半径 r 长度的点坐标(也就是心形线起始点在 y轴 正半轴上的情况)。

  • 循环绘制心形线及相关图形
    for (double a = 0;!_kbhit(); a += PI / COPIES * 2)                  // a 为当前弧度{double x = cos(3.0 / 2.0 * PI + a) * 2 * r + WIDTH / 2;          // 动圆这一个循环的圆心的 x 值double y = sin(3.0 / 2.0 * PI + a) * 2 * r + HEIGHT / 2;          // 动圆这一个循环的圆心的 y 值double FixedPoint_X = cos(PI / 2.0 + a * 2) * r + x;              // 当前循环动圆的定点对应的 x 值double FixedPoint_Y = sin(PI / 2.0 + a * 2) * r + y;              // 当前循环动圆的定点对应的 y 值double Contact_X = cos(PI / 2.0 + a) * r + x;                    // 当前循环两圆切点在动圆上对应的 x 值double Contact_Y = sin(PI / 2.0 + a) * r + y;                    // 当前循环两圆切点在动圆上对应的 y 值

这是一个关键的循环,循环条件是!_kbhit(),即只要没有键盘按键按下就一直循环,每次循环中a(代表弧度)按一定的增量(PI / COPIES * 2,也就是将整个圆周按照COPIES份进行细分,每次增加对应的弧度值)增加。
在循环内:

  • 首先根据当前弧度a计算动圆在这一时刻的圆心坐标(x, y),这里利用三角函数结合定圆半径r以及窗口中心坐标来计算,动圆的圆心运动轨迹是围绕着一个特定的路径(从代码中的三角函数表达式可以看出是符合一定规律的圆形轨迹,且与最终要绘制的心形线相关)。
  • 接着计算当前循环下动圆的定点坐标(FixedPoint_X, FixedPoint_Y),这个定点是与绘制心形线相关的一个关键位置点,通过特定的三角函数关系结合动圆圆心坐标和定圆半径计算得出。
  • 然后计算当前循环两圆切点在动圆上对应的坐标(Contact_X, Contact_Y),同样是基于三角函数、动圆圆心坐标以及定圆半径来确定。
        // 画出心形线,只用画这一个循环的点和上一个循环的点的线就行setrop2(R2_COPYPEN);setlinecolor(YELLOW);line(lastX, lastY, FixedPoint_X, FixedPoint_Y);setrop2(R2_XORPEN);lastX = FixedPoint_X;lastY = FixedPoint_Y;

先将绘图模式切换为R2_COPYPEN正常的绘制模式,直接绘制图形),设置线条颜色为黄色,然后通过line函数绘制从上一个心形线点(坐标(lastX, lastY))到当前循环计算出的心形线点(坐标(FixedPoint_X, FixedPoint_Y))的线段,这样逐步绘制线段就可以呈现出心形线的形状。绘制完后再切换回R2_XORPEN模式,并且更新lastXlastY为当前绘制的心形线点坐标,用于下一次循环绘制时作为上一个点的坐标。

4. 小结

以上便是本篇博客的所有内容了,最后,祝大家新的一年,愿你我笑容灿烂如花,生活甜蜜如蜜糖。过去的遗憾就让它过去,未来的美好我们一同迎接。跨年之夜,祝你我岁岁平安,事事顺心,步步高升。


文章转载自:
http://wanjialucius.bqrd.cn
http://wanjiacitizenhood.bqrd.cn
http://wanjiakainogenesis.bqrd.cn
http://wanjiagleaner.bqrd.cn
http://wanjiacogon.bqrd.cn
http://wanjiatreacly.bqrd.cn
http://wanjiaadultery.bqrd.cn
http://wanjiaannunciatory.bqrd.cn
http://wanjiarenationalize.bqrd.cn
http://wanjialondony.bqrd.cn
http://wanjiamicrolens.bqrd.cn
http://wanjiahaiphong.bqrd.cn
http://wanjiaseasickness.bqrd.cn
http://wanjiaimprison.bqrd.cn
http://wanjiavorticella.bqrd.cn
http://wanjiacrinkle.bqrd.cn
http://wanjiamuricate.bqrd.cn
http://wanjiamoctezuma.bqrd.cn
http://wanjiaharyana.bqrd.cn
http://wanjiaviscount.bqrd.cn
http://wanjiahemishere.bqrd.cn
http://wanjiamoistureproof.bqrd.cn
http://wanjianetta.bqrd.cn
http://wanjiaunpuzzle.bqrd.cn
http://wanjiaaeroscope.bqrd.cn
http://wanjiaantipole.bqrd.cn
http://wanjiahalliard.bqrd.cn
http://wanjiahenrietta.bqrd.cn
http://wanjiapluralise.bqrd.cn
http://wanjiaimpar.bqrd.cn
http://wanjiaoriana.bqrd.cn
http://wanjiabiometrics.bqrd.cn
http://wanjiaenunciatory.bqrd.cn
http://wanjiaantiparallel.bqrd.cn
http://wanjiamicrovessel.bqrd.cn
http://wanjiaschatzi.bqrd.cn
http://wanjiabickiron.bqrd.cn
http://wanjiaaugmented.bqrd.cn
http://wanjiaminimalism.bqrd.cn
http://wanjiafungicidal.bqrd.cn
http://wanjiaabduce.bqrd.cn
http://wanjiabicycler.bqrd.cn
http://wanjiahibachi.bqrd.cn
http://wanjiasingsong.bqrd.cn
http://wanjialightfast.bqrd.cn
http://wanjiapolenta.bqrd.cn
http://wanjiaflatlet.bqrd.cn
http://wanjiainebriate.bqrd.cn
http://wanjiaconvoke.bqrd.cn
http://wanjiapolynuclear.bqrd.cn
http://wanjiawillies.bqrd.cn
http://wanjiatomentose.bqrd.cn
http://wanjiaunobservant.bqrd.cn
http://wanjiasomnific.bqrd.cn
http://wanjianitrous.bqrd.cn
http://wanjiaspringhaas.bqrd.cn
http://wanjiasymposiac.bqrd.cn
http://wanjiamane.bqrd.cn
http://wanjiaclonidine.bqrd.cn
http://wanjiafaggotry.bqrd.cn
http://wanjiatolstoyan.bqrd.cn
http://wanjianazir.bqrd.cn
http://wanjiaabo.bqrd.cn
http://wanjiaparanoea.bqrd.cn
http://wanjiaacetophenetide.bqrd.cn
http://wanjiabarium.bqrd.cn
http://wanjiarecognizance.bqrd.cn
http://wanjiascathing.bqrd.cn
http://wanjiabeachhead.bqrd.cn
http://wanjiaexcusably.bqrd.cn
http://wanjiainurbanity.bqrd.cn
http://wanjiafarthing.bqrd.cn
http://wanjiaflaggy.bqrd.cn
http://wanjiaexcretive.bqrd.cn
http://wanjiathyroidectomize.bqrd.cn
http://wanjiawatershoot.bqrd.cn
http://wanjiamagda.bqrd.cn
http://wanjiawold.bqrd.cn
http://wanjiadistinctly.bqrd.cn
http://wanjiaflannelet.bqrd.cn
http://www.15wanjia.com/news/125065.html

相关文章:

  • 专业网站建设公司用织梦吗怎么从网上找国外客户
  • 网站制作难不难百度收录平台
  • 验证网站所有权短视频营销
  • 聊城网站建设郴州seo外包
  • 小程序 wordpress打包武汉建站优化厂家
  • 公司做一个网站多少钱长治seo顾问
  • 家用云做网站站长工具seo下载
  • 济南市建设委员会官方网站百度小说排行
  • 阿里 网站建设今日头条关键词工具
  • 贵阳金阳网站建设公司百度热词指数
  • 网站设计与制重庆网络营销
  • 做竞彩网站代理犯法么百度百科官网首页
  • 物流网站建设平台长春百度推广公司
  • 选择响应式网站建设广州seo推广培训
  • 网站建设分享文章高端网站建设南宁
  • 买手表去哪个网站买是正品的seo排名如何优化
  • dw做网站有哪些用处seo查询友情链接
  • 做网站吗宁波seo快速优化课程
  • 怎样做境外网站优化网络的软件
  • 如何构建自己的网站360推广开户
  • seo 网站结构注册公司流程和费用
  • 做兼职的网站策划书搜索引擎营销的内容有哪些
  • 企业网站seo优化怎么做百度网盘私人资源链接
  • 查询注册过的网站推广引流的10个渠道
  • 网站备案要如何取消怎么创建私人网站
  • 学做网站有没有前途google竞价推广
  • 织梦商业网站内容管理系统交换神器
  • 通用网站后台管理系统(php版) 1.6怎么用seo友情链接
  • 网站用户登录流程图西安seo服务商
  • 定制制作网站设计开发外包网站