十九章总结

news2024/11/23 21:33:27

一.Java绘图类
        1.Graphics类
Graphics类是所有图形上下文的抽象基类,它允许应用程序在组件以及闭屏图像上进行绘制。Graphics类封装了Java支持的基本绘图操作所需的状态信息,主要包括颜色、字体、画笔、文本、图像等。

        2.Graphics2D类
Graphics2D类继承Graphics类,实现了功能更加强大的绘图操作的集合。

二.绘制图形
【例19.1】绘制奥运五环图案
代码:

结果:

要绘制指定形状的图形,需要先创建并初始化改图形类的对象,且这些图形类必须是Shape接口的实现类;然后使用Graphics2D类的draw()方法绘制改图形对象,或者使用fill()方法填充改图形对象。语法:

draw(Shape form)
或:
fill(Shape form)

其中,form是指实现Shape接口的对象。 

【例19.2】绘制空心和实心的集合图形

代码:

结果:

 

三.绘制颜色与画笔属性

        1.设置颜色

创建Color对象的构造方法有如下两种:

Color col=new Color(int r,int g,int b)
Color col=new Color(int rgb)

 绘图类可以使用setColor()方法设置当前颜色。语法:

setColor(Color color)

 参数color是Color对象,代表一个颜色值。

【例】改变颜色

代码:

结果:

 

 2.设置画笔

默认情况下,Graphics类使用的画笔属性是粗细为1个像素的正方形,而Graphics2D类可以调用setStroke()方法设置画笔的属性。语法:

setStroke(Stroke stroke)

 参数stroke是Stroke接口的实现类对象。

四.绘制文本

        1.设置字体

Java使用Font类封装了字体的大小、样式等属性,该类在Java.awt包中定义,其构造方法可以指定字体的名称、大小和样式3个属性。语法:

Font(String name,int style,int size)

设置绘图类的字体可以使用绘图类setFont()方法。设置字体以后在图形上下文中绘制所有文字都使用该字体,除非再次设置其他字体。语法:

setFont(Font font)

参数font是Font类的字体对象。

  2.显示文字

Graphics2D类提供了drawString()方法,使用该方法可以实现图形上下文的文本绘制,从而实现在图片上显示文字的功能。语法:

drawString(String str,int x,int y)
drawString(String str,float x,float y)
【例19.3】绘制文字钟表

代码:

结果:

五.显示图片

绘图类不仅可以绘制图形和文本,还可以使用drawImage()方法将图片资源显示到绘图上下文中,而且可以实现各种特效处理,如图片的缩放、翻转等。语法:

drawImage(Image img,int x,int y,ImageObserver observer)

 

【例19.4】在窗体中显示图片

代码:

结果:

 

六.图像处理

        1.放大与缩小 

显示图片使用了drawImage()方法将图片以原始大小显示在窗体中要想实现图片的放大与缩小,则需要使用它的重载方法。语法:

drawImage(Image img,int x,int y,int width,int height,ImageObserver observer)

【例19.5】通过滑动条改变图片大小

代码:

 结果:

 2.图片翻转 

图像的翻转需要使用drawImage()方法的另一个重载方法。语法:

drawImage(Image img,int dx1,int dy1,int dx2,int dy2,int sx1,int sx2,int sy2,ImageObserver observer)

【例19.6】翻转照片 

代码:

 

结果:

 

        3.图像旋转 

图像旋转需要调用Graphics2D类的rotate()方法,该方法将根据指定的弧度旋转图像。语法:

rotate(double theta)

theta是指旋转的弧度

【例19.7】让照片围绕左上角点旋转

代码:

结果:

        4.图像倾斜

可以使用Graphics2D类提供的shear()方法设置绘图的倾斜方向,从而使图像实现倾斜的效果。语法:

shear(double shx,double shy)
【例19.8】让照片变成向左倾斜的平行四边形形状 

代码:

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软考篇】中级软件设计师 第四部分(一)

中级软件设计师 第四部分(一) 二十九. 程序设计语言概述29.1 解释、编译29.3 编译程序29.4 后缀式29.5 文法定义29.6 正规式29.7 有限自动机29.8 语法分析方法 三十. 法律法规30.1 作品所属权30.2 商标有效期30.3 职务作品所属权30.4 单位与委托30.5 商标…

Python 获取北上广深历史天气数据并做数据可视化

嗨喽,大家好呀~这里是爱看美女的茜茜呐 知识点: 动态数据抓包 requests发送请求 结构化非结构化数据解析 开发环境: python 3.8 运行代码 pycharm 2022.3.2 辅助敲代码 专业版 requests 发送请求 pip install requests parsel 解析数据 pip install parsel …

jbase实现通用码表

没有通用码表的体系是不完美的,当年我用C#能实现的通用码表,现在在java一样的实现了,通用码表对提高开发效率和降低开发成本的作用巨大,开发可以专注写业务,而不比被太多的维护界面束缚。进而体现在产品竞争力上面&…

Radiology 谈人工智能在放射学领域的10个预测方向 [文献阅读]

人工智能(AI)和信息学正在改变放射学。十年前,没有哪个专家会预测到今天放射人工智能行业的蓬勃发展,100多家人工智能公司和近400种放射人工智能算法得到了美国食品和药物管理局(FDA)的批准。 不到一年前,即使是最精明的预言家也不会相信这些…

Figma插件合集大放送,效果嘎嘎棒!

近日,Figma被Adobe收购的消息在设计领域引起了极大的轰动。作为海外知名的设计工具,Figma对设计圈的影响不容小觑。Figma插件是设计师选择Figma的重要原因。然而,设计软件是一个快速更新和迭代的行业。在关注海外设计软件的同时,也…

python中的字符串转字节码

res int.from_bytes(hello.encode(), byteorderlittle)res的结果为478560413032,这个结果怎么计算得到的呢? 将hello的每个字母的ascii码从右往左排列,拼接起来转成十进制就是res的结果。 拼接的结果为:011011110110110001101100…

JWT登录认证(1登录)

JwtUtil package com.lin.springboot01.utils; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import java.util.Date; import java.util.Map;public class JwtUtil {private static final String KEY "liner2332";//接受业务数据&#xf…

【Mycat2实战】二、Mycat安装部署

1. Mycat下载 Mycat官网下载地址,点击直接前往:http://www.mycat.org.cn/ Mycat 有提供编译好的安装包,支持 windows、Linux、Mac、 Solaris 等系统上安装与运行。 本文及后续系列的文章都是使用Linux的系统进行操作。 这里我们选择使用文…

Leetcode周赛371补题(3 / 3)

目录 1、找出强数对的最大异或值 - 暴力 2、高访问员工 - 哈希表 模拟 3、最大化数组末位元素的最少操作次数 - 思维 贪心 1、找出强数对的最大异或值 - 暴力 找出强数对的最大异或值 I class Solution {public int maximumStrongPairXor(int[] a) {int na.length,max0;…

Linux 小程序-进度条

1.进度条准备知识 1.1回车与换行 以前的键盘会有一个这样的按键 ,这个键就是回车与换行。 回车:从当前行回退到当前行的起始位置。 换行:从当前行切换到下一行的该位置。 有了以上的认识我们可以写出一个简单的倒计时代码: 注意&a…

如何掌握项目管理的5个阶段?

项目管理协会(PMI)创建了一个五步项目管理流程,即从启动、规划、执行、监控到结束,为项目经理更好地管理项目提供了现成的基础。如果你正为范围蔓延、返工或项目总体混乱而苦恼,那么遵循项目管理的五个阶段&#xff0c…

【装包拆包----泛型】

文章目录 装箱和拆箱泛型创建一个泛型数组泛型的上界泛型方法 装箱和拆箱 装箱: 把基本数据类型给到引用数据类型 public static void main(String[] args) {//自动装包//第一种装包Integer c 12;//第二种装包int a 7;Integer b a;//显示装包Integer aa Intege…

什么是自动化测试框架?

无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”…

应用协议安全:Rsync-common 未授权访问.

应用协议安全:Rsync-common 未授权访问. Rsync 是 Linux 下一款数据备份工具,支持通过 rsync 协议、ssh 协议进行远程文件传输。其中 rsync 协议默认监听 873 端口,如果目标开启了 rsync 服务,并且没有配置 ACL 或访问密码&#…

Node.js 安装配置

文章目录 安装检测Node是否可用 安装 首先我们需要从官网下载Node安装包:Node.Js中文网,下载后双击安装没有什么特殊的地方,安装路径默认是C盘,不想安装C盘的话可以选择一下其他的盘符。安装完成以后可以不用配置环境变量,Node安装已经自动给…

【算法总结】归并排序专题(刷题有感)

思考 一定要注意归并排序的含义,思考归并的意义。 主要分为两个步骤: 拆分 每次对半分(mid l r >> 1)输入:raw整块,输出:raw左块 raw右块 合并 每次都要对raw左块、 raw右块按照某种规则进行合并输入&#xf…

计算机基础知识53

模板之过滤器 # HTML被直接硬编码在 Python代码之中,Django的 模板系统(Template System) # 过滤器给我们提供的有六十多个,但是我们只需要掌握10个以内即可 过滤器名称就是函数名 # 语法:{{ obj|filter__name:param }} 变量名字…

多个Obj模型合并

MergeObj(合并Obj模型) 1 概述 由于项目原因,需要下载谷歌地图上的模型,关于谷歌模型下载的,见我的CSDN博客. 由于下载谷歌地图上的数据,会分多个模块下载。下载完成后,怎么合并,在…

电脑检测温度软件有哪些?

环境: Win10 专业版 问题描述: 电脑检测温度软件有哪些? 解决方案: 有很多电脑检测温度的软件可供选择,以下是一些常用的电脑温度监测工具: HWMonitor:一款免费的硬件监控软件&#xff0…

快速生成力扣链表题的链表,实现快速调试

关于力扣链表题需要本地调试创建链表的情况 我们在练习链表题,力扣官方需要会员,我们又不想开会员,想在本地调试给你们提供的代码 声明:本人也是参考的别人的代码,给你们提供不同语言生成链表 参考链接: 参…