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

怎么做公司销售网站上海app定制开发公司

怎么做公司销售网站,上海app定制开发公司,浦东新区消息今天,聊城手机网站建设软件目录 1. 效果展示 2. 源码展示 3. 逻辑概述 3.1 表针绘制函数(DrawHand) 3.2 表盘绘制函数 3.3 主程序逻辑 4. 小结 概述:本篇博客主要介绍简易钟表的绘制。 1. 效果展示 该钟表会随着系统的时间变化而变化,动态的效…

目录            1. 效果展示

 2. 源码展示

 3. 逻辑概述

3.1 表针绘制函数(DrawHand)

 3.2 表盘绘制函数

 3.3 主程序逻辑

4. 小结


 概述:本篇博客主要介绍简易钟表的绘制。

 1. 效果展示

 该钟表会随着系统的时间变化而变化,动态的效果还请大家自行演示。

2. 源码展示

// 程序名称:钟表模拟程序(表针形式)#include <graphics.h>
#include <conio.h>
#include <math.h>#define	PI	3.1415926536void DrawHand(int hour, int minute, int second)
{double a_hour, a_min, a_sec;					// 时、分、秒针的弧度值int x_hour, y_hour, x_min, y_min, x_sec, y_sec;	// 时、分、秒针的末端位置// 计算时、分、秒针的弧度值a_sec = second * 2 * PI / 60;a_min = minute * 2 * PI / 60 + a_sec / 60;a_hour = hour * 2 * PI / 12 + a_min / 12;// 计算时、分、秒针的末端位置x_sec = int(120 * sin(a_sec));	y_sec = int(120 * cos(a_sec));x_min = int(100 * sin(a_min));	y_min = int(100 * cos(a_min));x_hour = int(70 * sin(a_hour));	y_hour = int(70 * cos(a_hour));// 画时针setlinestyle(PS_SOLID, 10);setlinecolor(WHITE);line(320 + x_hour, 240 - y_hour, 320 - x_hour / 7, 240 + y_hour / 7);// 画分针setlinestyle(PS_SOLID, 6);setlinecolor(LIGHTGRAY);line(320 + x_min, 240 - y_min, 320 - x_min / 5, 240 + y_min / 5);// 画秒针setlinestyle(PS_SOLID, 2);setlinecolor(RED);line(320 + x_sec, 240 - y_sec, 320 - x_sec / 3, 240 + y_sec / 3);
}void DrawDial()
{// 绘制一个简单的表盘circle(320, 240, 2);circle(320, 240, 60);circle(320, 240, 160);outtextxy(296, 310, _T("Susea&"));// 绘制刻度int x, y;for (int i = 0; i < 60; i++){x = 320 + int(145 * sin(PI * 2 * i / 60));y = 240 + int(145 * cos(PI * 2 * i / 60));if (i % 15 == 0)solidrectangle(x - 5, y - 5, x + 5, y + 5);else if (i % 5 == 0)circle(x, y, 3);elseputpixel(x, y, WHITE);}
}int main()
{initgraph(640, 480);		// 初始化 640 x 480 的绘图窗口DrawDial();					// 绘制表盘setrop2(R2_XORPEN);	// 设置 XOR 绘图模式// 绘制表针SYSTEMTIME ti;				// 定义变量保存当前时间while (!_kbhit())				// 按任意键退出钟表程序{GetLocalTime(&ti);		// 获取当前时间DrawHand(ti.wHour, ti.wMinute, ti.wSecond);	// 画表针Sleep(1000);			// 延时 1 秒DrawHand(ti.wHour, ti.wMinute, ti.wSecond);	// 擦表针(擦表针和画表针的过程是一样的)}closegraph();				// 关闭绘图窗口return 0;
}

 3. 逻辑概述

3.1 表针绘制函数(DrawHand)
void DrawHand(int hour, int minute, int second)
{double a_hour, a_min, a_sec;					// 时、分、秒针的弧度值int x_hour, y_hour, x_min, y_min, x_sec, y_sec;	// 时、分、秒针的末端位置// 计算时、分、秒针的弧度值a_sec = second * 2 * PI / 60;a_min = minute * 2 * PI / 60 + a_sec / 60;a_hour = hour * 2 * PI / 12 + a_min / 12;// 计算时、分、秒针的末端位置x_sec = int(120 * sin(a_sec));	y_sec = int(120 * cos(a_sec));x_min = int(100 * sin(a_min));	y_min = int(100 * cos(a_min));x_hour = int(70 * sin(a_hour));	y_hour = int(70 * cos(a_hour));// 画时针setlinestyle(PS_SOLID, 10);setlinecolor(WHITE);line(320 + x_hour, 240 - y_hour, 320 - x_hour / 7, 240 + y_hour / 7);// 画分针setlinestyle(PS_SOLID, 6);setlinecolor(LIGHTGRAY);line(320 + x_min, 240 - y_min, 320 - x_min / 5, 240 + y_min / 5);// 画秒针setlinestyle(PS_SOLID, 2);setlinecolor(RED);line(320 + x_sec, 240 - y_sec, 320 - x_sec / 3, 240 + y_sec / 3);
}
  • 角度计算:将时、分、秒转换为弧度值
    • 秒针:每秒转动 2π/60 弧度
    • 分针:每分钟转动 2π/60 弧度,并加上秒针的微小偏移
    • 时针:每小时转动 2π/12 弧度,并加上分针的微小偏移
  • 坐标计算:使用三角函数计算表针末端坐标
    • x = r * sin(angle)
    • y = r * cos(angle)
  • 绘制表针
    • 时针:粗线 (10px)、白色、长度 70px
    • 分针:中线 (6px)、浅灰色、长度 100px
    • 秒针:细线 (2px)、红色、长度 120px

逻辑概述: 

  1. 定义了一些变量来存储时针、分针、秒针的弧度值以及它们的末端位置坐标。
  2. 计算时针、分针、秒针的弧度值:
    • )a_sec 为秒针的弧度值,根据秒数乘以 2 * PI / 60 计算得出。
    • )a_min 为分针的弧度值,根据分数乘以 2 * PI / 60 再加上秒针弧度值的六十分之一计算得出。
    • )a_hour 为时针的弧度值,根据小时数乘以 2 * PI / 12 再加上分针弧度值的十二分之一计算得出。
  3. 计算时针、分针、秒针的末端位置坐标:
    • )通过相应的弧度值和长度计算出 x 和 y 坐标。
  4. 分别绘制时针、分针和秒针:
    • )使用 setlinestyle 和 setlinecolor 设置线条样式和颜色。
    • )使用 line 函数根据计算出的坐标绘制线条来表示时针、分针和秒针。
 3.2 表盘绘制函数
void DrawDial()
{// 绘制一个简单的表盘circle(320, 240, 2);circle(320, 240, 60);circle(320, 240, 160);outtextxy(296, 310, _T("Susea&"));// 绘制刻度int x, y;for (int i = 0; i < 60; i++){x = 320 + int(145 * sin(PI * 2 * i / 60));y = 240 + int(145 * cos(PI * 2 * i / 60));if (i % 15 == 0)solidrectangle(x - 5, y - 5, x + 5, y + 5);else if (i % 5 == 0)circle(x, y, 3);elseputpixel(x, y, WHITE);}
}
  • 基本元素
    • 中心小圆点
    • 内外两个圆环 (半径 60px 和 160px)
    • 底部文字标识 "Susea&"
  • 刻度绘制
    • 整点刻度 (0,15,30,45):实心方块 (10x10px)
    • 5 分钟刻度:小圆圈 (半径 3px)
    • 普通刻度:单个像素点

逻辑概述:

  1. 绘制了三个同心圆,分别位于坐标 (320, 240) 处,半径分别为 260 和 160
  2. 在坐标 (296, 310) 处显示文本 _T("Susea&") 。
  3. 使用循环绘制刻度
    • )通过循环计算每个刻度的坐标 (x, y) ,根据角度 i 和三角函数计算得出。
    • )对于每一个刻度,根据其在表盘上的位置进行不同的绘制:
      • 如果 i 能被 15 整除,绘制一个实心矩形作为大刻度。
      • 如果 i 能被 5 整除,绘制一个半径为 3 的圆作为中刻度。
      • 其他刻度则使用 putpixel 函数绘制一个白色像素点作为小刻度。
 3.3 主程序逻辑
int main()
{initgraph(640, 480);		// 初始化 640 x 480 的绘图窗口DrawDial();					// 绘制表盘setrop2(R2_XORPEN);	// 设置 XOR 绘图模式// 绘制表针SYSTEMTIME ti;				// 定义变量保存当前时间while (!_kbhit())				// 按任意键退出钟表程序{GetLocalTime(&ti);		// 获取当前时间DrawHand(ti.wHour, ti.wMinute, ti.wSecond);	// 画表针Sleep(1000);			// 延时 1 秒DrawHand(ti.wHour, ti.wMinute, ti.wSecond);	// 擦表针(擦表针和画表针的过程是一样的)}closegraph();				// 关闭绘图窗口return 0;
}
  • 初始化:创建 640x480 的绘图窗口,绘制静态表盘
  • XOR 绘图模式:使用异或模式绘制表针,实现表针的自动擦除
  • 实时更新
    1. 获取系统时间
    2. 绘制当前表针位置
    3. 延时 1 秒
    4. 再次绘制相同表针 (利用 XOR 模式擦除之前的表针)
  • 退出机制:按任意键终止程序

逻辑概述: 

  1. 使用 initgraph 函数初始化一个 640 x 480 的绘图窗口。
  2. 调用 DrawDial 函数绘制表盘。
  3. 设置 XOR 绘图模式
  4. 通过一个循环实现钟表的动态显示
    • )定义 SYSTEMTIME 类型的变量 ti 来保存当前时间。
    • )在循环中,使用 GetLocalTime 函数获取当前时间,并将其作为参数传递给 DrawHand 函数来绘制表针。
    • )使用 Sleep 函数进行 1 秒的延时。
    • )再次调用 DrawHand 函数来擦除之前绘制的表针(因为 XOR 绘图模式的特性,相同的操作会产生擦除的效果)。
  5. 当用户按下任意键时,循环结束,使用 closegraph 函数关闭绘图窗口并返回 0

4. 小结

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

 


文章转载自:

http://F7zsDSaG.mdrnn.cn
http://P0hUdAXl.mdrnn.cn
http://gcOfXbxz.mdrnn.cn
http://BCESdNXF.mdrnn.cn
http://V2PTh8Cy.mdrnn.cn
http://sNch732S.mdrnn.cn
http://nmKCgAaD.mdrnn.cn
http://iPS4d8tc.mdrnn.cn
http://A7qDroTr.mdrnn.cn
http://uNkFdxOo.mdrnn.cn
http://x8vkWUA3.mdrnn.cn
http://LMnzSWxM.mdrnn.cn
http://Zb3pWKoZ.mdrnn.cn
http://3LYjYKya.mdrnn.cn
http://pXpAIIfB.mdrnn.cn
http://zTFaUVVO.mdrnn.cn
http://Y6NSfMsv.mdrnn.cn
http://CTe0612T.mdrnn.cn
http://8cMQqNDn.mdrnn.cn
http://OOu90YOh.mdrnn.cn
http://oyLFA7jz.mdrnn.cn
http://u6bY7tWj.mdrnn.cn
http://LwSfAkZR.mdrnn.cn
http://4bT2ktA5.mdrnn.cn
http://DpaUnezK.mdrnn.cn
http://PC1fq58c.mdrnn.cn
http://Be6eLFfa.mdrnn.cn
http://LQFt5XjH.mdrnn.cn
http://p2Aea5aK.mdrnn.cn
http://Z8Nb9w6o.mdrnn.cn
http://www.dtcms.com/wzjs/658725.html

相关文章:

  • 好网站有没有wordpress免费中文主题分享
  • 北海做网站有哪家好页面设计风格的主要内容
  • 建设网站有哪些方法有哪些购物网站设计人员
  • 做免费网站教程广州陈村网站建设
  • 网站建设运行问题及建议网站建设技术人员要会什么
  • 徐州中小企业网站制作上海集团平台app
  • 一家公司做网站需要什么资料徐州金网网站建设
  • 国内企业网站建设Wordpress 充值 卡密
  • 酒泉网站建设费用关闭WordPress自动文章摘要
  • 单位举报网站建设维护情况报告网站设计培训学校有哪些
  • c2c网站功能软件外包行业分析
  • 江苏省建设执业网站域名交易平台
  • 上海专业网站开发石家庄学做网站建设培训学校
  • 如何做最强的社交网站岳阳房地产信息网
  • 动漫网站怎么做的怀化seo网站
  • 网站建设与推广合肥网站域名到期后果
  • 如何查看网站关键词科技公司网站网页
  • 网站设计与网页制作华为商城网站设计分析
  • 做淘宝类网站长沙专门做网站公司有哪些
  • 双语网站用什么程序做网站上怎么做艳丽的色
  • 南宁网站定制公司自适应好还是响应式网站好
  • c 网站开发简单实例教程python做网站挣钱
  • 河南省汝州市建设网站宁波网站开发制作
  • 0基础学网站开发怎么用腾讯云主机建设网站
  • 网站推广营销技巧室内效果图制作流程
  • 给宝宝做衣服网站好外语网站建设
  • 专业做国际网站的公司比较出名的外贸公司有哪些
  • 怎样给网站做竞价推广如何把一个关键词优化到首页
  • 网站访问量统计代码怎么做苏州网站制作公司
  • 有哪些公司的网站设计的好专业品牌设计网站建设