编程实现时钟表盘刻度

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(使用前将#替换为@)

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

  • nginx反向代理(前端 开发环境、测试环境、生产环境 解决方案)

    什么是Nginx Nginx engine x 是一个高性能的HTTP和反向代理服务 也是一个IMAP POP3 SMTP服务 Nginx是由伊戈尔 赛索耶夫为俄罗斯访问量第二的Rambler ru站点 俄文 开发的 第一个公开版本0 1
  • 联想笔记本使用linux时不能连接WiFi

    1 每次开机不能使用无线网 输入 rfkill list 发现ideapad laptop处于blocked yes状态 使用以下命令解除锁定便可以使用wifi sudo modprobe r ideapad laptop 2 将ideap
  • Windows下搭建Telnet服务器

    1 开启Telnet功能 控制面板 gt 程序 gt 启用或关闭Windows功能 2 启动Telnet服务 打开计算机管理 双击Telnet服务 选择 启动 3 访问telnet服务 在cmd命令中输入 telnet ip 输入 y 进入
  • Python串口通信模块PySerial使用教程(CH340 USB TTL转接芯片)

    CONTENTS 1 CH340 USB TTL介绍 2 PySerial教程 1 CH340 USB TTL介绍 TTL 一般是从单片机或者芯片中发出的电平 高电平为 5V 51单片机 或者 3 3V STM32 USB 转 TTL 模块
  • 收藏几个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
  • 有关循环Random随机数重复的解决方案

    在做项目时 我逻辑服循环里面使用random时发现会随机出重复数 我在网上查了资料 然后使用的方法 float objRandomCount new Random Guid NewGuid GetHashCode Next 0 num 可以
  • ORB_SLAM2 with XTION的编译问题(1)

    ORB SLAM2 with XTION的编译问题及解决 1 源链接为https github com chaizheng2157 RGBD ORB SLAM2 RT 其中里面有两个包要编译 分别是g2o with orbslam2和ORB
  • 使用 Fiddler 抓包PC微信小程序

    想查看小程序的请求 使用wireshark捣鼓了半天还是无法解析微信小程序的HTTPS协议 于是使用Fiddler试试 Tools gt Options 重启 Fiddler 点击右边的 Filter 选项卡 然后点击 Actions gt
  • 一个类成员函数访问另一个类的私有成员方法(不依靠继承与友元),仅供娱乐 :XD

    class B class A public A double a 0 int b 0 y a x b cout lt lt A is creat lt lt endl A void show cout lt lt A y is lt lt
  • 《域渗透攻防指南》签名版预售来啦

    千呼万唤始出来 终于 在广大粉丝翘首期盼下 国内首本专门讲述域内攻防的书籍 域渗透攻防指南 在2022年最后一个月和大家见面了 为了回馈粉丝的等待 让粉丝早日拿到心仪的书 特此联合机械工业出版社弄了签名版书预售活动 数量有限 仅限前500名
  • 如何进行代码审查?

    如何review开发人员的代码 前置的一些概念 review级别 参与人身份和方式不同划分 相关开发自己看代码 非正式会议 开发人员组内 相关开发 直接上级 相关开发 直接上级 总监 1 团队review制度 团队内根据实际情况规定流程 在
  • 循环获取Java中泛型T的属性以及属性值

    利用 Java 的反射机制来获取泛型类中的属性及其对应的值 具体实现方式如下 import java lang reflect Field public class GenericClassUtil
  • 使用VMware完成KVM虚拟化实验并运行Centos

    本次实验在VMware中的Ubuntu18内安装KVM并运行centos 首先 在VMware下开启虚拟化 更新软件索引 apt get update 安装依赖 apt get install qemu kvm qemu virt mana
  • 在linux shell中使用ftp命令来实现自动上传与下载

    前段时间有个需求 需要利用crontab定时往某个FTP上传文件 原以为linux中带的ftp命令只支持交互式的操作 没法在命令行下使用 所以后来打算利用PHP中提供的ftp命令来做 但是很不幸的发现ftp模块不是PHP的标准模块 还需要自
  • 设置VS 2013代码折叠

    设置VS 2013代码折叠 版本 VS2013 中文版 步骤 工具 T gt 选项 O gt 文本编辑器 gt C C gt 查看 gt 大纲语句块 设置为 True
  • Unity在development模式下的一个坑

    最近发现unity生成的包在Nexus上如果打开带Input控件的界面时 关闭屏幕再打开 则永远无法显示输入法界面了 一开始还以为是unity自己本身的bug 后来发现release版本并无这个问题 于是弄了个最简单的测试版本分别打了 两个
  • (转)C++模板函数和重载

    C 模板函数和重载 先来看一个例子 include
  • 解决word页码混乱并使页码从指定页开始

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

    1 什么是RESTful API 一种流行的API设计风格 2 为什么使用RESTful架构 REST 是 Representational State Transfer 的缩写 如果一个架构符合 REST 原则 就称它为 RESTful
  • 【Golang入门】Golang第一天心得

    生活所迫 入门一下Go 很奇葩的第一点 接口 package main import fmt 定义一个接口 type Shape interface Area float64 定义一个矩形类型 type Rectangle struct W

随机推荐

  • 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