编程实现时钟表盘刻度

2023-10-27

首先看个时钟刻度显示效果:

一个表盘有60个刻度,每5个刻度就有一个刻度尺寸偏长,画该表盘步骤如下:

  1. 画外围圈,这个就是画一个圆,假设其圆心坐标为 ( x 0 , y 0 ) (x_0, y_0) (x0,y0),半径为 R R R,左上角为坐标原点
  2. 画表盘中心,这个小圆半径随意,圆心与大圆同心
  3. 画刻度,为了简单,其实只需要画1/4圆的刻度就好,其他部分根据对称可以画出来。为了描述方便,将圆四等分,如下图所示:

    为了画每一个刻度,需要知道每个线段的起始坐标,以图中A、B两点来看,A点的坐标很好计算,为 ( x 0 + R s i n α , y 0 − R c o s α ) (x_0+Rsin\alpha, y_0-R cos\alpha) (x0+Rsinα,y0Rcosα),其中 α \alpha α为图中A点与圆心所在直线与竖向直线所成的夹角。至于B点,该点必在A点与圆心所在的连线上,假设线段AB的长度为 r r r,则可根据A的坐标 ( x A , y A ) (x_A, y_A) (xA,yA)计算出B的坐标为 ( x A − r s i n α , y A + r c o s α ) (x_A - rsin\alpha, y_A + rcos\alpha) (xArsinα,yA+rcosα),其中,A的坐标上一步已经算出,角度 α \alpha α与上一步计算A坐标时用到的一致。这样就可以画出线段AB了。 根据对称,可以分别画出在第2、3、4象限的线段了,这样刻度就画出来了。

当然,实际实现表盘时,不需要这样编程去画,可以用工具手动画好,只需要在上面画秒针、时针等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编程实现时钟表盘刻度 的相关文章

  • 局域网——MC无法访问服务器或Ping通

    和室友玩MC的时候 他在局域网内创建服务器后 我一直无法搜索到他的服务器 我也连了他的热点 IP地址也是同一网段的 ping了一下他的机器 请求超时 上网搜了一下 最后发现是因为我装了VM 机器上有VM创建给虚拟机用的虚拟网卡 应该是因为游
  • 概率论 各种分布及其期望、方差、分布函数

    概率论 各种分布及其期望 方差 分布函数 0 1 分布 二项分布 X b n p 泊松分布 X pi lambda 均匀分布 X U a b 指数分布 正态 高斯分布 X N
  • 联想笔记本使用linux时不能连接WiFi

    1 每次开机不能使用无线网 输入 rfkill list 发现ideapad laptop处于blocked yes状态 使用以下命令解除锁定便可以使用wifi sudo modprobe r ideapad laptop 2 将ideap
  • 浅谈APT攻击

    如今高级持续性威胁 Advanced Persistent Threat APT 已成为人尽皆知的 时髦术语 越来越多的企业开始对其高度关注 政府部门也面临着遭受APT攻击的危险 在安全顾问的每一篇分析报告中都会提及它的 大名 众多企业机构
  • 收藏几个GNU网站,方便下载并安装gcc、glibc、make

    收藏几个GNU网站 方便下载gcc glibc make http ftp gnu org gnu gcc 安装教程参考 https www cnblogs com w84422 p 15210919 html http ftp gnu o
  • maven创建自定义web工程模板

    一 先搭建好一个项目模板 这里推荐两种方式 更推荐第一种 第一种 maven创建web工程 使用模板方式 二 第二种 maven创建web工程不用模板 手动创建 一 注意每个文件夹下都放一个文件占位 否则创建模板时会认为是空目录不进行创建
  • IncrediBuild 联合编译

    01 基本信息 官网 https www incredibuild com Make 和其他构建工具示例 要使用IncrediBuild 必须有License 可以免费申请试用版本的license 可以到 https www incredi
  • CTF Misc(1)图片隐写基础以及原理,覆盖了大部分题型

    前言 在ctf比赛中 misc方向是必考的一个方向 其中 图片隐写也是最常见的题目类型 在本篇文章中 将教授以下内容 1 各种图片文件的头数据以及判断是什么类型的图片 2 png图片隐写 3 jpg图片隐写 4 gif图片隐写 5 bmp图
  • 如何提高for循环的效率--兆易创新一面

    1 实例化变量放在循环外 include
  • CodeMirror用户手册

    用户手册和参考指南版本5 46 1 CodeMirror是一个代码编辑器组件 可以嵌入到Web页面中 核心库仅提供编辑器组件 不提供伴随按钮 自动完成或其他IDE功能 它确实提供了丰富的API 在此基础上可以直接实现这些功能 有关额外功能的
  • 使用VMware完成KVM虚拟化实验并运行Centos

    本次实验在VMware中的Ubuntu18内安装KVM并运行centos 首先 在VMware下开启虚拟化 更新软件索引 apt get update 安装依赖 apt get install qemu kvm qemu virt mana
  • 前端后端的区别(超详细版)

    前端与后端开发中技术差异的全面对比 什么是前端开发 网站和移动应用的前端 物联网的前端 什么是后端开发 网站和移动应用后端 物联网后端 前端 Vs 后端有什么区别 前端与后端技术栈 前端 Vs 后端 谁是最好的 前端与后端开发人员 前端 V
  • maven 打包 releases 和 snapshots 版本

    releases 线上版本 生产环境使用的 snapshots 快照版本 开发过程中使用的 maven 打包代码到私服根据version 后面是否带有 SNAPSHOTS 来区分是打包线上版本还是快照版本 如果带有 SNAPSHOTS 打包
  • 序列化和反序列化(简单)(c++)

    序列化和反序列化 简单 c 最近看了看序列化相关的 动手试着做了一下 虽然感觉自己很菜 但还是忍不住分享 由此记录成长 什么事序列化呢 我的理解 将数据转换成字节流存进内存 序列化 从指定内存取出字节流 再把字节流转换成数据 反序列化 那我
  • 生成项目树形结构

    当你写博客或者项目描述的时候 想要展示项目的树形结构 怎么办呢 手写 程序员是不可能手写的 win R输入cmd进入dos 输入命令 tree 项目根目录 gt 生成的树形结构文件保存地址 比如 tree E workspace flink
  • 如何高逼格的写java代码

    记录一些了解的高逼格 好用的java代码 欢迎大家补充 共同学习 1 函数式接口 FunctionalInterface 好处 高逼格 代码收拢 解藕 统一处理 适用范围 具有共性的接口调用代码 举个栗子 在我们平时的微服务开发中 调用其他
  • 解决word页码混乱并使页码从指定页开始

    解决word页码混乱并使页码从指定页开始 1 解决word页码混乱 页码混乱是由于误加了分节符导致的结果 导致页码不按照物理顺序排序 因此 我们在大纲模式下删除所有分节符 重排页码 2 从指定页重排页码 在指定页页眉位置点击布局 选择分隔符
  • 记 asp.net core 开发过程中的错误

    mysql数据库 ef进行 update database 时 报 An error occurred using the connection to database on server localhost 3307 错误原因 serve
  • C++零散易错点总结

    对日常做题中遇到的一些零散的易错点的总结 持续更新ing 1 string的length方法返回的是无符号数 当与负数比较时需要强制类型转换 否则会报错 1
  • 2023计算机四非保研(复试:东北大学,成电,西电,浙软,中海洋,天大)

    文章目录 个人情况 夏令营情况 预推免情况 进入复试 中国海洋大学 学硕 浙大软院 专硕 天津大学智算 专硕 中科院网络中心 专硕 西电网安院 学硕 东北大学计算机 学硕 成电计算机 专硕 最终offer 感想 个人情况 本科学校 西北某四

随机推荐

  • C 语言 strftime()和strptime()

    C 语言 将时间转换为字符串和字符串转换为时间格式 首先 要先知道C语言头文件time h下的 struct tm结构体 struct tm int tm sec 秒 范围从 0 到 59 int tm min 分 范围从 0 到 59 i
  • 使用扩展卡尔曼滤波(EKF)融合激光雷达和雷达数据(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 大多数自动驾驶汽车都配备了激光雷达和雷达
  • 内存屏障(cpu内存屏障 与java内存屏障)

    文章目录 CPU 内存屏障 定义 读写屏障指令 为什么会出现内存屏障 java内存屏障 java内存屏障存在意义 java中内存屏障的主要类型 LoadLoad 屏障 StoreStore 屏障 LoadStore 屏障 StoreLoad
  • Linux:工具(vim,gcc/g++,make/Makefile,yum,git,gdb)

    目录 工具功能 1 vim 1 1 vim的模式 1 2 vim常见指令 2 gcc g 2 1 预备知识 2 2 gcc的使用 3 make Makefile make Makefile的使用 4 yum yum三板斧 5 git git
  • 使用指针封装一个实现strcat功能的函数

    strcat函数的原理 将两个字符串内的数据进行拼接 将拼接好的数据放在目标字符串中 编程思想 使用char类型的两个指针 dest src 指向目标字符串和只读字符串首地址 通过while循环使指针 dest 指向目标字符串尾地址 再通过
  • Python 算法交易实验61 ADBS:QuantData到MyQuantBase-续3(故障处理)

    说明 故障重现并找到了 我觉得可以把这个问题当成一种设计模式予以强化 内容 1 故障重现 我发现在CNT Worker运行后 WorkOut队列会有小概率出现没有衍生特征的情况 进而无法输出 产生了阻塞 当启动CNT Worker时发生 观
  • linux 文件转换ascii,linux 小技巧(查找替换文件中的ascii编码字符)

    这里纪录一些linux下用到的小技巧 以免遗忘 在linux中经常碰见各种文件处理 最常用的就是替换文件中的某些字符 常见字符替换还是很容易完成 但是有些不可见字符以及ascii编码字符等等都无法直接使用常见方法替换 这里可以用下面的几种方
  • 一个在线学习正则表达式的网站

    今天发现了一个不错的网站regexr com 可以在线学习正则表达式 如图 网站左边包含了常用的正则表达式 我们可以随时参考 右边是一些示例文字 英文段落 电话号码 网址 电子邮箱地址等都有 网站上面可以输入正则表达式 当我们把鼠标移动到正
  • 微信小程序自定义主题颜色【状态栏tab样式同步更改】

    此功能使用js控制变量 调整颜色值 赋值给css颜色达到切换自定义颜色效果 1 创建公共样式userStyle js文件 通过定义style1和style2来控制全局颜色改变 注意 颜色值务必为十六进制 避免API不兼容颜色 userSty
  • 【Python】Python错误类型03

    Python程序设计错误可以分为三类 语法错误 运行时错误 逻辑错误 1 语法错误 print Hello World 2 运行时错误 运行时错误是导致程序意外终止的错误 如果Python解释器检测到一个不可能执行的操作 就会出现运行时错误
  • 2020新版siteground主机空间服务器购买选择图文教程-跨境电商外贸网站最佳主机空间

    Siteground主机空间怎么样 很多国内的小伙伴可能对siteground主机空间比较陌生 感觉不如bluehost或者Godaddy名气大 实际上siteground在国外是一家非常有名气和实力的美国主机服务商 也是wordpress
  • 以太坊生成合约地址以及存在的账户碰撞

    Eip1014 1 create 通过CREATE关键字创建合约 Create creates a new contract using code as deployment code func evm EVM Create caller
  • Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields论文笔记

    这篇论文是2017年的CVPR 使用的是自底向上的结构 本文的重点在于提出PAFs Part Affinity Fields Realtime Multi Person 2D Pose Estimation Using Part Affin
  • 网络协议系列1—TC/PIP网络模型

    文章目录 一 TCP IP网络模型 二 UDP 1 面向无连接 2 有单播 多播 广播功能 3 UDP是面向报文的 4 不可靠性 5 头部开销小 传输数据报文时很高效 三 TCP 1 连接过程 第一次握手 第二次握手 第三次握手 2 TCP
  • Tip__Unity 3D模型上的材质球为灰色 改不动的问题

    正解 unity导入的模型无法编辑材质球属性 取巧 新建一个材质球 拖到模型原材质球位置 就可以把原材质球替换掉 然后修改新材质球的主图和Shader
  • 我把这一年学的 CSS 知识点精炼总结成了一篇文档

    文章目录 一 CSS简介 1 什么是CSS 二 CSS语法 1 语法规则 2 注释 三 CSS选择器 1 CSS的id选择器 2 CSS的class选择器 四 CSS创建 1 外部样式表 2 内部样式表 3 内联样式 4 多重样式 5 多重
  • 连接器信号完整性仿真教程 七

    本将介绍微带线及差分微带线仿真 做连接器信号完整性仿真时 有时后没法将激励端口直接设置到连接器端子上 这就需画出连接器PCB PAD 将激励端口设置在PAD的端面上 或者用引线连接PAD 将引线引出到适当的位置 再在引线端设置激励端口 通常
  • mac M1配置selenium的chromedriver

    1 确认浏览器版本 2 下载对应的chromedriver M1版是mac arm64版 3 将驱动放在 H O M E b i n
  • js的变量数据类型

    1 什么是变量 1 变量 变化的量 在JS程序中 用于储存数据的容器 2 如何在JS程序中使用变量 1 声明变量 告诉浏览器 我要使用这个变量 var变量名称 声明变量的语法 2 初始变量 给变量赋值 变量名称 值 赋值 将值储存到变量中
  • 编程实现时钟表盘刻度

    首先看个时钟刻度显示效果 一个表盘有60个刻度 每5个刻度就有一个刻度尺寸偏长 画该表盘步骤如下 画外围圈 这个就是画一个圆 假设其圆心坐标为 x 0 y