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

通信管理局 网站备案网络设计的目的

通信管理局 网站备案,网络设计的目的,呼伦贝尔做网站的,建设银行网站修改预留手机号前言:Hello大家好,我是小哥谈。OpenCV能够在画布上绘制静态的图形,例如,线段、矩形、正方形、圆形、多边形、文字等。那么,能不能让这些静态的图形移动起来?如果能,又该如何编写代码呢&#xff…

前言:Hello大家好,我是小哥谈。OpenCV能够在画布上绘制静态的图形,例如,线段、矩形、正方形、圆形、多边形、文字等。那么,能不能让这些静态的图形移动起来?如果能,又该如何编写代码呢?本实例将使用OpenCV提供的绘制圆形的方法,先绘制一个实心圆,再让这个实心圆在画布上移动起来,呈现“弹球动画”的视觉效果。🌈 

     目录

🚀1.核心技术

🚀2.实现步骤

🚀3.实现代码

🚀1.核心技术

想要实现这个功能需要解决两个问题如何计算运动轨迹和如何实现动画。下面分别介绍这两个问题的解决思路。👇

🍀(1)通过图像坐标系计算运动轨迹。

小球在运动的过程中可以把移动速度划分为四个方向。左右为横坐标移动速度上下为纵坐标移动速度。小球向右移动时横坐标不断变大,向左移动时横坐标不断变小,由此可以认为:小球向右的移动速度为正数,向左的移动速度为负数。纵坐标同理,因为图像坐标系的原点为背景左上角顶点,越往下延伸纵坐标越大,所以小球向上的移动速度为负数,向下的移动速度为正数。四个方向的速度如下图所示。

假设小球移动一段时间之后,移动的轨迹如下图所示,小球分别达到了四个位置,2号位置和3号位置发生了反弹,也就是移动速度发生了变化,导致了移动方向发生变化。整个过程中,四个位置的速度分别如下:👇

a.右下方向移动,横坐标向右,横坐标速度为+Vx,纵坐标向下,纵坐标速度为+Vy。

b.右上方向移动,横坐标向右,横坐标速度为+Vx,纵坐标向上,纵坐标速度为-Vy。

c.左上方向移动,横坐标向左,横坐标速度为-Vx,纵坐标向上,纵坐标速度为-Vy。

d.左上方移动,没有碰到边界,依然保持着与3号位置相同移动速度。

由此可以得出,小球只需要改变速度的正负号就可以改变的移动方向,所以在程序中可以将小球的横坐标速度和纵坐标速度设定成一个不变的值,每次小球碰到左右边界,就更改横坐标速度的正负号,碰到上下两边界,就更改纵坐标速度的正负号。

🍀(2)通过time模块实现动画效果

Python自带一个time时间模块,该模块提供了一个sleep()方法可以让当前线程休眠一段时间,其语法如下:

time.sleep(seconds)

参数说明:

seconds:休眠的秒数,可以是小数,例如1/10表示十分之一秒。

例如,让当前线程休眠1s,代码如下:

import timetime.sleep(1)  # 休眠1s

说明:♨️♨️♨️

动画实际上是由多幅图像在短时间内交替放映实现的视觉效果。每一幅图像被称为一帧,所谓的“60帧”就是指1s放映了60幅图像。使用time模块每1/60s计算一次小球的移动轨迹,并将移动后的结果绘制到图像上,这样1s有60幅图像交替放映,就可以看到弹球的动画效果了。


🚀2.实现步骤

本实例要先在一个宽、高都为200像素的纯白色画布上,绘制一个半径为20像素的纯蓝色的实心圆,并且把这个实心圆当作弹球;再让弹球在画布上作匀速直线运动,一旦弹球碰触到画布边界,就会发生反弹(反弹不损失动能)。


🚀3.实现代码

具体的实现代码如下所示:

import cv2
import time
import numpy as npwidth, height = 200, 200  # 画布的宽和高
r = 20  # 圆半径
x = r + 20  # 圆心横坐标起始坐标
y = r + 100  # 圆形纵坐标起始坐标
x_offer = y_offer = 4  # 每一帧的移动速度while cv2.waitKey(1) == -1:  # 没有按下键盘上的任何按键if x > width - r or x < r:  # 如果圆的横坐标超出边界x_offer *= -1  # 横坐标速度取相反值if y > height - r or y < r:  # 如果圆的纵坐标超出边界y_offer *= -1  # 纵坐标速度取相反值x += x_offer  # 圆心按照横坐标速度移动y += y_offer  # 圆心按照纵坐标速度移动img = np.ones((width, height, 3), np.uint8) * 255  # 绘制白色画布cv2.circle(img, (x, y), r, (255, 0, 0), -1)  # 绘制圆形cv2.imshow("img", img)  # 显示图像time.sleep(1 / 60)  # 休眠1/60s,也就是每秒60帧cv2.destroyAllWindows()  # 释放所有窗体

运行结果如图所示:

退出的时候,按下【Esc】键即可。


http://www.yayakq.cn/news/666510/

相关文章:

  • 网站建设入什么会计科目和各大网站做视频的工作总结
  • 网站建立于网页设计怎么做贝店式的网站
  • 做网站需要注意的点中国科协网站建设招标
  • 山西网站建设服务公司杭州做网站公司有哪些
  • 视频网站后台功能自适应网站建设推荐
  • 动画网站模块工程建设与设计期刊
  • wordpress手机站如何做用cms做网站的缺点
  • 中国互联网站建设免费推广手段有哪些
  • 东莞网站免费制作wordpress react 影响
  • 深圳美容网站建设网站如何添加友情链接
  • vs2013做简单的网站网站建设原因
  • 本地网站建设多少钱wordpress小工具编辑器
  • 个人可以网站备案吗织梦医院网站源码
  • 温州建设局网站上海建智建设人才培训中心网站
  • 做婚礼请柬的网站有哪些软考5个高级中哪个好考
  • 大连网络推广网站优化找哪家好合肥企业建网站
  • 彩虹云商城网站搭建对门户网站建设的见解
  • 祖传做网站博兴网站建设
  • 网站建设开发服务费下什么科目企业网站板块
  • 营销型网站方案ppt模板网站开发怎么收费
  • 网站系统后台手机网站在线咨询代码
  • 专业模板网站设计公司北京信息维护公司
  • 百度怎么建立网站珠海关键词优化软件
  • 免费建手机商城网站吗临沂网站临沂网站制作
  • 懂做网站的人就是好肇庆正规网页设计培训试听
  • 网站开发套餐省运会官方网站建设
  • 没有做网站经验可以学seo吗网络共享和数据传输事件
  • wordpress能大网站如何建立一个外贸公司网站
  • 长治推广型网站建设东莞常平邮政编码多少
  • 中心网站设计网站设计排行榜前十