Java重修笔记 第五十三天 坦克大战(一)绘图入门

Vue3 - 详细实现移动端H5网页调用摄像头拍照功能,微信公众号网页h5页面打开本地摄像头并点击按钮照相,vue3获取摄像头画面执行拍照保存,调整摄像头前置后置抓拍图片给用户展示或保存手机上传服务器 vue3,H5网页,手机移动端,vue3摄像头拍照,前端h5调用手机摄像头,移动端网页调用摄像头,H5实现手机拍照和选择上传,调用本地摄像头实现拍照,vue3调用摄像头拍照,手机浏览器开启摄像头并进行拍照,H5移动端网页中调用手机摄像头,H5实现web调用摄像头在线照相,vue3h5调用摄像头,微信公众号网页如何调用摄像头拍照,公众号H5页面实现打开摄像头照相,怎么生成临时图片,vue3项目调用摄像头实现拍照功能,摄像头打不开没反应,浏览器不兼容怎么办,摄像头权限不弹出,只能在本地运行,拒绝权限后怎么办, 阅读详情
  • 绘制简单的图形
1. 创建画板

        定义一个画板类,通过继承 JPanel 类来创建画板

2. 创建画笔

        在画板类中调用 paint 方法,并传入一个 Graphics g 对象,通过对 g 对象的操作来实现画画的过程

3. 开始作画

        调用 Graphics g 对象的方法在 paint 方法中作画

4. 创建画框

        定义一个框架类,通过继承 JFrame 类来创建一个框架,让 JPanel 画板能够在此框架中显示出来

5. 初始化面板

        在 JFrame 框架类中定义一个 JPanel 画板对象作为属性,并在 JFrame 类的构造方法中给 JPanel 画板对象开辟空间,即初始化面板

6. 将初始化好的面板放入画框

        在 JFrame 框架类的构造方法中初始化好 JPanel 对象后,调用框架类继承过来的add方法,将 JPanel 对象加入到该框架类中

7. 设置画框格式

        在构造方法中调用框架类继承过来的setSize方法、setVisiable方法、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)方法来设置画框大小,是否可显示,按退出键退出程序等

8. 初始化框架

        new 框架类就能显示内容了

代码演示:

// 第四步: 创建画框
public class DrawCircle extends JFrame {
    
    private MyPanel mp;

    public static void main(String[] args) {
        // 第八步: 初始化框架
        new DrawCircle();
    }

    public DrawCircle() {
        // 第五步: 初始化面板
        mp = new MyPanel();
        // 第六步: 将初始化好的面板放入画框
        this.add(mp);
        // 第七步: 设置画框格式
        this.setSize(400,300);
        this.setVisible(true);
    }
}

// 第一步: 创建画板
class MyPanel extends JPanel {
    // 第二步: 创建画笔
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        // 第三步: 开始作画
        g.drawOval(10, 10, 100, 100);
    }
}

运行结果:

  • paint 方法被调用的几种情况

1. 组件第一次显示

2. 窗口最小化再最大化

3. 窗口大小发生变化

4. repaint 方法主动刷新组件外观

11、基于多阵列电极的表面肌电信号运动估计 本文介绍了一种基于多阵列电极的表面肌电信号运动估计技术,旨在实现对手腕和手指运动的高精度估计,解决传统人机接口在操控多自由度机器人时的局限性。通过多阵列电极系统采集前臂肌肉活动信号,结合独立成分分析(ICA)和非负矩阵分解(NMF)等信号处理方法,提取肌肉协同作用,进而生成运动指令以控制机器人或假肢手。文章对比了多阵列电极与传统电极的优势,展示了运动估计算法的整体流程,并以假肢手控制为例说明其实际应用。最后探讨了该技术在测量精度、应用拓展、智能化和便携化等方面的未来发展方向。该技术为假肢控制、康复训练和人机 阅读详情

相关推荐

绿标短网址app.10086.cn/xxxxx移动短网址缩短接口网址api调用php方式解析

绿标短网址app.10086.cn/xxxxx 移动网缩短接口网址api调用php方式解析 app.10086.cn是移动网站的接口,可以制作移动网等第三方官方网站域名的任意生成接口,由于是认证企业,可以再抖音 微信 qq等第三方渠道正常打开不拦截提示,第三方网址,头条文章等,效果非常号,这里记录下api接口,纯技术php生成,具体规则可以去抖音的开放平台去申请对应接口 。这里用我php模拟抓包获取方式 GET http://www.app10086cn.cn/?i=app.10068.cnHTTP/1.1

qq_20300095的博客 5907

Java重修笔记 第五十四天 坦克大战(二)常用的绘图方法、画出坦克图形

参数:x - 要绘制的椭圆的左上角的 x坐标。y - 要绘制的椭圆的左上角的 y坐标。参数:x - 要填充的椭圆的左上角的 x坐标。y - 要填充的椭圆的左上角的 y坐标。参数:x - 要绘制的矩形的 x坐标。y - 要绘制的矩形的 y坐标。width - 要绘制的矩形的宽度。height - 要绘制的矩形的高度。参数:x - 要填充的矩形的 x坐标。y - 要填充的矩形的 y坐标。width - 要填充的矩形的宽度。y2 - 第二点的 y坐标。注:g.drawString 方法的横纵坐标指的是字体的。

Code___slave的博客 703

IEEE论文接收后,收到Proof邮件别慌!手把手教你48小时内搞定校样(附详细截图)

本文详细解析了IEEE论文接收后Proof校样的全流程,从邮件关键信息解码到精准修改标注,提供48小时内高效完成校样的实战指南。涵盖登录技巧、文件验证、修改标注黄金法则及九宫格检查清单,帮助作者避免常见错误,确保论文顺利发表。

weixin_30652491的博客 563

Java重修笔记 第六十七天 坦克大战(完结)

判断两个坦克是否重叠,8个状态直接烧脑,根据坦克的行进方向和来判断4个边共8个点,将 this 的 x 和 y 分别做出限制,而 enemy 又有上下和左右两种状态,光判断的 if 语句就写了16个,这是最难的部分,我单独写了2天都没写出来,只是模糊的感觉到和方向有关很复杂,不知道什么方向该判断那条边,直到现在都有点蒙的,不过好歹学会了判断两个矩形是否重叠的方法。总结:收获很大,反复刷了有三四遍,几乎把前面学习到的知识全部串联起来了,学不烦看不厌,独此一家了。6. IO 流存储数据意识。

Code___slave的博客 450

STC51单片机串口多字节数据接收的优化策略

本文深入探讨了STC51单片机串口多字节数据接收的优化策略。针对数据丢包、粘包等常见痛点,核心思路是采用“缓冲队列+定时器超时”模式,将实时处理转变为“先收纳,后处理”。文章详细讲解了硬件初始化、中断服务程序优化(快速入队与激活超时裁判)以及主循环的非阻塞设计,并进阶介绍了环形缓冲区实现与错误处理,旨在构建稳定可靠的串口通信系统。

weixin_29264201的博客 372

关于三维全波电磁场仿真软件CST的安装和问题解决

百度网盘链接:https://pan.baidu.com/s/1RgWr8Qau1EzSOlh29SewFQ提取码:fzza这里是2023版本的CST,需要其他版本的uu们可以去官网或者其他人的网盘下载。

weixin_60728441的博客 3599

Java重修笔记 第五十五天 坦克大战(五)多线程基础

尝试将此线程让出 CPU 资源去执行其他线程,若CPU资源不紧张,则可能礼让不成功,是否礼让取决于 CPU 同一调度。将调用这个方法后将该线程标记为守护线程,当其他所有线程全部退出后,只剩下守护线程时,守护线程线程自动退出。一般为工作线程服务,只有当所有的用户线程结束后,守护线程最后才结束。也叫工作线程,只有当该线程执行完毕,或者以外部通知的方式才会结束。将该线程标记为守护线程,只有当其他用户线程全部退出以后,此线程自动最后退出。正在等待另一个线程执行特定动作的线程处于此状态。尚未启动的线程处于此状态。

Code___slave的博客 1040

从零到一:IC Compiler II(ICC II)后端设计流程详解

本文详细解析了IC Compiler II(ICC II)后端设计流程,从环境准备到物理实现,再到布线优化与签核验证。通过实战案例和高效技巧,帮助工程师掌握ICC II工具链的应用,提升数字集成电路设计的效率和质量。

weixin_30879169的博客 343

Java重修笔记 第五十四天 坦克大战(四)多线程基础

当点击运行按钮运行程序时,就相当于启动了一个进程,虚拟机进入 mian 方法后会开启一个名为 mian 的主线程,main 方法体中创建一个线程对象,调用该线程对象的 start 方法又创建一个子线程,只有调用线程对象 start 方法才能创建出一个子线程,子线程不影响主线程的执行,如果只调用线程对象的 run 方法,那就不会创建新线程,还是在主线程中运行,阻塞主线程直到 run 方法执行完毕。主线程结束后并不会影响进程的结束,只有当该进程下的所有线程全部结束后,该进程才会结束。

Code___slave的博客 1123

详细解释xilinx源语的使用:IDELAYE2和IDELAYE3

/ 完整的数据位对齐模块input wire dqs, // 数据选通input wire [7:0] dq_in, // 8位数据输入output wire [63:0] data_out // 并行数据输出// 延迟控制信号// 每个数据位都需要独立的IDELAYgenvar i;i < 8;// IDELAYE2实例.IDELAY_VALUE (10), // 初始值。

baidu_34971492的博客 433

Java重修笔记 第六十天 坦克大战(十)IO 流 - FileReader 和 FileWriter

一旦流已关闭,进一步的read(),ready(),mark(),reset()或skip()调用将抛出IOException。异常:FileNotFoundException - 如果命名文件不存在,是一个目录,而不是常规文件,或者由于某些其他原因无法打开读取。异常:FileNotFoundException - 如果命名文件不存在,是一个目录,而不是常规文件,或者由于某些其他原因无法打开读取。FileWriter 使用后,必须 close 关闭或者 flush 刷新,否则写入不到指定文件。

Code___slave的博客 937

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java重修笔记 第五十八天 坦克大战(八)IO 流

文件就是保存数据的地方,既可以保存视频,也可以保存声音、图片等等文件在程序中是以流的形式来操作的1. 输入流:数据从数据源(文件)到 程序(内存)之间的路径2. 输出流:数据从程序(内存)到 数据源(文件)之间的路径。

Code___slave的博客 528

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java重修笔记 第五十六天 坦克大战(六)多线程基础 - 线程同步、死锁

多线程编程中,一些敏感数据可能会被多个线程同时访问造成数据混乱(例如票数),使用线程同步机制,通过锁对象(对象实例或类实例)的方式来保证该段代码在任意时刻,最多只能由一个线程来访问,从而保证了数据的安全性。多个线程都占用了对方的锁资源,即 A 线程想要 B 线程持有的锁资源,而 B 线程想要 A 线程持有的锁资源,且双方互不释放,就会导致死锁的发生。运行结果:(结果不固定)运行结果:(结果不固定)运行结果:(结果不固定)运行结果:(结果不固定)运行结果:(结果不固定)运行结果:(结果不固定)

Code___slave的博客 946

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java重修笔记 第五十九天 坦克大战(九)IO 流 - FileInputStream 和 FileOutputStream

说明:append 为 true 时,文件写入是以追加的方式写入,append 为 false 时,文件写入是以覆盖的方式写入(不写默认覆盖),且如果指定的文件路径不存在时会创建该文件。参数:b - 要写入的目标字节数组 off - 数据中的起始下标偏移量 len - 要写入的长度。说明:向目标文件以构造器制定的形式写入 b 中的数据,从 off 下标开始写入 len 长度的数据。异常:IOException - 发生 IO 错误时会抛出此异常。

Code___slave的博客 1104

Java重修笔记 第六十一天 坦克大战(十一)IO 流 - 节点流和处理流、BufferedReader 和 BufferedWriter

3. 处理流(包装流)对节点流进行包装,使用的是修饰器设计模式,通在处理流类中定义一个父类的 reader/writer ,调用相关方法来操作传入的对应子类,而包装流则不会与数据源直接相连。2. 处理流是经过包装过后的节点流,也叫包装流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出。1. 修饰器模式强调的是增强自身,通过增强类的方法来调用原有类的方法,调用时不改变原有类的方法,只是。2. 代理模式通过实现目标类的接口实现静态或动态的代理,通过继承或实现原有类,

Code___slave的博客 1100

Java重修笔记 第五十七天 坦克大战(七)多线程基础 - 编程练习

【代码】Java重修笔记 第五十七天 坦克大战(七)多线程基础 - 编程练习。

Code___slave的博客 513

Java重修笔记 第六十四天 坦克大战(十四)IO 流 - 标准输入输出流、InputStreamReader 和 OutputStreamWriter

本质上是一个OutputStream,对应显示器,不过被包装成了PrintStream,表示在显示器上输出。参数:out - 一个 OutputStream 子类下的输出流。本质上是一个InputString,对应键盘,表示从键盘输入。参数:in - 一个 InputStream 子类下的输入流。1. 为了解决使用读写源文件时出现的乱码问题(字符编码不一致),引出转换流。说明:不管包装了多少个流,只需要关闭最外层的流就行。,如果不关闭或刷新流,东西写不进去。是 Writer 的子类,可以。

Code___slave的博客 988

Java重修笔记 第五十四天 坦克大战(三)事件处理机制

(3)keyReleased 方法监听抬起动作,当某个键松开后触发。在画框类的构造方法中加入 addKeyListener(mp);(2)keyPressed 方法监听按下动作,当按键按下后触发。(1)keyTyped 方法监听字符输出,当字符输出后触发。

Code___slave的博客 403

Java重修笔记 第六十三天 坦克大战(十三)IO 流 - ObjectInputStream 和 ObjectOutputStream、对处理流的细节整理

InvalidClassException - 类的序列化版本与从流中读取的类描述符的类型不匹配,或者在加载序列化类的过程中找不到该类。OptionalDataException - 没有读取完前面的元素,或者前面的元素使用的readXXX方法读错了原始数据。反序列化读取顺序,必须和序列化顺序一致,如果要调用该类的特有方法需要获得该类的定义,并向下转型。5. 序列化对象时,该对象的所有属性也都必须实现序列化接口,除了static 和 transient。参数:obj - 要写入的对象。

Code___slave的博客 492

学习Java的历程

十个月转眼见就过去了!回想这十个月学习Java的历程,只能说是很充实!我是一名大三的学生,是去年10月份开始报的培训班学Java的,我学校在汉中,培训班的老师是从西安过来的!平均每周上6节课,由于种种原因,陆陆续续就上到现在了。前两个月学的是html css Javascript Jquery,到1月份才正式学习Java SE,那会刚好放寒假,白天上一天课,晚上回去看视频教程,那一个多月的生活就在

f245956483的专栏 741

Java重修笔记 第六十二天 坦克大战(十二)IO 流 - BufferedInputStream 和 BufferedOutputStream、序列化和反序列化

3. 要让对象支持序列化机制,必须实现两个接口之一:Serializable 或者 Externalizable。2. 反序列化就是在恢复数据时,1. 序列化就是在保存数据时,

Code___slave的博客 289

明确下一个阶段的学习

<br />1.继续学习J2SE,之后学习J2EE。J2SE基础已经学完,现在是项目练习阶段,通过练习学写项目“坦克大战”巩固了不少知识,其中包括java.awt中的类和方法的使用,如何组织类之间的关系,获取引用的技巧,以及线程的简单应用,还有代码的书写调整,说明注释文档的生成,以及jar包的生成。<br /> <br />2.学习OpenGL,虽然VC++学的不好,但是OpenGL很多东西都是套用的,感觉是一门侧重研究算法的技术,因此可以简单巩固VC++的知识,同时也可以掌握计算机图形学方面的知识。<br

Demon的专栏 1029

MySQL建库建表操作学习笔记

SQL(Structured Query Language,结构化查询语言)是用于在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。:用于定义对数据库对象(库、表、列、索引)的操作,如 CREATE、DROP、ALTER、RENAME、TRUNCATE 等。保存可变长度的字符串(可包含字母、数字以及特殊字 符)。:用于定义对数据库记录的操作,如 INSERT、DELETE、UPDATE、SELECT 等。:用于定义对数据库、表、字段、用户的访问权限和安全级别,如 GRANT、REVOKE 等。

Eternitycai的博客 217

选型笔记:Type‑C 扩展坞方案评估|DP1.4 转 HDMI2.0 桥接芯片 GSV2201S@ACP

本文记录 GSV2201S 这款 DP1.4a 转 HDMI2.0 桥接芯片评估,梳理视频、HDCP、PD 集成能力,总结 Type‑C 转接 Dongle、扩展坞方案的适配边界,以及差分走线、PD 时序、HDCP 握手等高频调试问题,为 C 口视频转接方案选型提供参考。

ACP广源盛的博客 216

【FreeRTOS源码学习笔记】任务创建

【FreeRTOS源码学习笔记】任务创建

2502_90565057的博客 456
上一篇: Java重修笔记 第五十二天 Junit
下一篇: Java重修笔记 第五十四天 坦克大战(二)常用的绘图方法、画出坦克图形
shade_影子
博客等级 码龄6年 289粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值