首页 > 其他分享 >Halcon 画一个时钟

Halcon 画一个时钟

时间:2023-02-05 22:44:54浏览次数:45  
标签:rad 一个 WindowHandle dev Halcon CenterX CenterY line 时钟

直接上代码:

dev_update_off()
dev_close_window()
dev_open_window(0, 0, 512, 512, 'white', WindowHandle)
set_display_font(WindowHandle, 16, 'mono', 'true', 'false')
dev_set_draw('margin')
dev_set_color('black')
CenterX := 512 / 2
CenterY := 512 / 2
while(true)
    dev_clear_window()    
    dev_set_line_width(5)
    disp_circle(WindowHandle, CenterY, CenterX, 2)
    disp_circle(WindowHandle, CenterY, CenterX, 100)
    dev_set_line_width(2)
    disp_circle(WindowHandle, CenterY, CenterX, 105)
    for I := 1 to 12 by 1
        MarkAngle := 360 / 12 * I - 90
        MarkX1 := CenterX + 100 * cos(rad(MarkAngle))        
        MarkY1 := CenterY + 100 * sin(rad(MarkAngle))
        MarkX2 := CenterX + 90 * cos(rad(MarkAngle))
        MarkY2 := CenterY + 90 * sin(rad(MarkAngle))
        Text := '' + I
        get_string_extents(WindowHandle, Text, Ascent, Descent, Width, Height)
        TextX := CenterX + 80 * cos(rad(MarkAngle)) - Width / 2
        TextY := CenterY + 80 * sin(rad(MarkAngle)) - Height / 2
        disp_line(WindowHandle, MarkY1, MarkX1, MarkY2, MarkX2)
        disp_text(WindowHandle, '' + I, 'image', TextY, TextX, 'black', ['box'], ['false'])
    endfor    
    get_system_time(MSecond, Second, Minute, Hour, Day, YDay, Month, Year)
    if (Hour > 12)
        Hour := Hour - 12
    endif
    dev_set_line_width(3)
    HourAngle := 360 / 12 * Hour - 90
    HourX := CenterX + 50 * cos(rad(HourAngle))
    HourY := CenterY + 50 * sin(rad(HourAngle))
    disp_line(WindowHandle, CenterY, CenterX, HourY, HourX)
    dev_set_line_width(2)
    MinuteAngle := 360 / 60 * Minute - 90
    MinuteX := CenterX + 60 * cos(rad(MinuteAngle))
    MinuteY := CenterY + 60 * sin(rad(MinuteAngle))
    disp_line(WindowHandle, CenterY, CenterX, MinuteY, MinuteX)
    dev_set_line_width(1)
    SecondAngle := 360 / 60 * Second - 90
    SecondX := CenterX + 70 * cos(rad(SecondAngle))
    SecondY := CenterY + 70 * sin(rad(SecondAngle))
    disp_line(WindowHandle, CenterY, CenterX, SecondY, SecondX)
    wait_seconds(1)
endwhile

效果:

 

标签:rad,一个,WindowHandle,dev,Halcon,CenterX,CenterY,line,时钟
From: https://www.cnblogs.com/lgyup/p/17094127.html

相关文章

  • Maven(一)如何用Eclipse创建一个Maven项目
    1.什么是MavenApacheMaven是一个项目管理和整合工具。基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven能够管理项目的构建、报告和文档。Maven工程结构和内容被......
  • c语言中共用栈的一个例子
    栈的其中一个作用:1.函数的返回地址和参数栈保存了一个函数调用时所需要的维护信息,可能和搭载另一个函数的栈一起返回函数的返回值(下面有一个例子)#include <stdio.h>#d......
  • 用Wpf做一个Diagram画板(续2)(包含封装一个控件FlowchartEditor)
    据上一次更新https://www.cnblogs.com/akwkevin/p/15047453.html已经1年有余,本次更新主要参照了一个Blazor的Diagram的画线算法,链接地址:https://github.com/Blazor-Diagra......
  • 做一个简单的用户登录功能
    1.建立springboot程序,导入mybatisplus依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>......
  • 【P8593】一个弹的投
    前言感觉属于信竞和物理的缝合,怕不是学长被物理虐的太惨了的报复?比赛时间撞了校内模拟赛,然后这场没打,不然至少能过这题。正文题意有点晕乎,大概就是说,有\(n\)个导弹,各......
  • Colab_解决训练卡在第一个epoch且step不动的问题
    一.问题如果在使用colab时遇到卡在第一个epoch且step一动不动的情况,大概率是因为需要读取的数据集路径在你的谷歌网盘下,这样就需要联网读取数据到你的云端虚拟电脑中,会导......
  • 一个404页面
    原文地址https://codepen.io/thejohnyagiz/pen/npDyq为防止链接失效,代码粘贴在下面<!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8"><title>......
  • 05安装一个Hadoop分布式集群
    安装一个Hadoop分布式集群最小化的Hadoop已经可以满足学习过程中大部分需求,但是为了研究Hadoop集群运行机制,部署一个类生产的环境还是有必要的。因为集群机器比较少,笔者没......
  • 美团索命一问:一个SQL ,怎么分析加了哪些锁? 含4大场景、8个规则
    背景说明:美团问数据库应该是非常多的,尤其喜欢考手写SQL然后问你这个SQL语句上面加了哪些锁,你会发现其他厂面试基本很少会这样考,所以很多小伙伴遇到这种问题的时候都......
  • matrix-tree 的一个推论
    本文作者的线性代数水平还很低,如果有什么更简单的方法请告诉TA。结论:对于一张无向图\(G\),设其Laplace矩阵为\(A\),而\(A\)的特征值分别为\(\lambda_1,\lambda_2,\l......