Java-绘图相关技术

//学了太多的基础,感觉一直没太大的进步,因此,我决定增加以下学习的难度,以此来增加自己的学习兴趣;
/*** Java 绘图相关技术的学习*Graphics类相关技术知识:*   1.Graphics类是所有图像绘图的基类,是一个抽象类;*   2.Graphic2D继承Graphics类,对Graphics类进行了扩展。*   3.我们如果需要创建一个绘图类,推荐使用Graphics2D,该类分别使用不同的类来表示图形;*      1.对于该类图形,我们使用GraphicsD类的draw()方法绘制,使用fill()进行填充;*      2.在java.awt.geom包中,实现了Shape接口的图形类可以上述两个方法。例如Line2D;**      3.在各类图形类中,我们使用Double和Float这两个实现类进行图形的不同精度构造,不同的精度需要的内存也不同。** 相关绘图知识介绍* 1.颜色类Color*      1.可以创建任何颜色,与平台无关;*      2.Color(int r,int g,int b)或者Color(int rgb);*      3.该类还定义了许多静态颜色常量,可以通过Color.RED访问;*      4.设置颜色setColor()* * 2.画笔*      1.在GraphicsD类可以通过setStroke(Strock strock)方法设置画笔的属性,包括线条的粗细,虚实和线段端点的样式。*      2.Strock接口作为参数*     * 3.文本*      1.Font(String name ,int style,int size);字体名字,类型和大小*      2.SetFont(Font font);*      3.drawString(String str,int x,int y):通过Graphics2D类中的方法来绘制显示字体;* * * 4.图像绘制*      1.获取图片资源路径getResource();*      2.获取图片getImage();*      3.drawImage()绘制显示图片* *      4.jSlider.getValue():可通过滑动组件来控制图片的缩放比例* * *      */
package app;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.net.*;//包含有main函数的类的类名和文件名必须保持一致
public class ImageShape extends JFrame
{/****/private static final long serialVersionUID = 1L;private final int width = 700;private final int height = 700;private Image img;private Shape Rect;private Font font;public ImageShape(){super();init();}private void init(){this.setSize(width, height);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体面板为绘图面板对象this.setContentPane(new Canvas());this.setTitle("绘图");}public static void main(String[] args){new ImageShape().setVisible(true);}class Canvas extends JPanel{/****/private static final long serialVersionUID = 1678373920467727747L;public void paint(Graphics g){super.paint(g);//Graphics用法g.setColor(new Color(255, 0, 0));g.fill3DRect(100, 100, 200, 200, true);g.setColor(Color.GRAY);g.fillRect(350, 100, 200, 200);//Graphics2D的用法Graphics2D g1 = (Graphics2D) g;g1.setColor(new Color(0,255,0));Shape[] shape = new Shape[2];shape[0] = new Ellipse2D.Double(100, 350, 200, 250);shape[1] = new Rectangle2D.Double(150, 400, 100, 100);g1.draw(shape[0]);g.setColor(new Color(0,0,255));g1.fill(shape[1]);//相关用法Graphics2D g2 = (Graphics2D) g;g2.setColor(Color.BLACK);g2.setFont(new Font("宋体", Font.BOLD, 15));g2.drawString("Java 绘图学习.", 400, 400);//图片绘制URL url = ImageShape.class.getResource("lena.jpg");img = Toolkit.getDefaultToolkit().getImage(url);Graphics2D g3 = (Graphics2D) g;/* g3.drawImage(img, 0, 0, this);*///图片的缩放int w = img.getWidth(this) * 30 / 100;int h = img.getHeight(this) * 30 / 100;g3.drawImage(img, 400,450,w,h,this);}}
} 

                     

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

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

相关文章

20210712未来智能实验室收录资料

整理:未来智能实验室20210712未来智能实验室收录资料特别推荐:置顶收录未来智能实验室在人民日报《学术前沿》发表的城市大脑最新综述研究论文和报告《城市大脑的起源、发展与未来趋势》,从城市大脑的起源和理论基础;城市大脑的定…

RISC-V生态未来的三种可能~

来源:嵌入式资讯精选因为x86 架构与 Arm 架构商业使用都要付费,因此,RISC-V开源具有很大优势。今天就来说说 RISC-V 生态的内容。关于RISC-VRISC:Reduced Instruction Set Computer,即精简指令集计算机。RISC-V是基于R…

java-图像的几何变换

/** Java 绘图相关技术的学习*Graphics类相关技术知识: 1.图像的几何变换图像翻转:使用另一个重载的drawImage(Image img,int x_1,int y_1,目标矩形的第一坐标int x_2,int y_2,目标矩形的第二坐标int x1,int y1,源矩形的第一坐标int x2,int y2,源矩形的第…

VS Code配置C/C++

VS Code 配置C/C  准备工作 Mingw-w64下载,在vscode中,点击帮助文档,进入如下界面。 在左侧选择CMingw-w64 onWindows,进入如下界面。可以参考文档进行配置。 点击文档中的mingw-w64链接进入如下界面。 点击黄色区域链接进入到里面…

人脑启发AI设计:让神经网络统一翻译语音和文本

来源:图灵人工智能作者:Glaciohound编辑:陈彩娴能够统一地理解语音和文本,是人类能够形成通用语言能力的重要原因。那么,人工智能是否也能如此?最近,来自字节跳动和UIUC的研究人员借鉴这一思路&…

32 bit 与 64 bit 程序(2)比较

32 bit 与 64 bit 程序(2)区别 由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件。 几个重要概念: (1)这里所说的的32位与64位程序,是指经过编译器编译后的可…

2021世界人工智能大会AI Debate:图神经网络是否是实现认知智能的关键?

来源:学术头条2021年7月10日,WAIC(2021世界人工智能大会)“图神经网络与认知智能前沿技术论坛”在上海世博中心成功举办。清华大学计算机科学与技术系教授李涓子,复旦大学计算机科学技术学院教授黄萱菁,清华…

Tensorflow深度学习应用(筑基篇)

筑基篇 #codinggbk1.张量 用于描述数据,可以理解为多维数组,包含张量的名字,阶数,形状数值类型. Tensor("Add:0", shape(m,n,k), dtypefloat32),表示节点名为Add,0代表第0个输出,shape表示为MxNxK维的数组&…

WPF中自动增加行(动画)的TextBox

WPF中自动增加行(动画)的TextBox 原文:WPF中自动增加行(动画)的TextBoxWPF中自动增加行(动画)的TextBox WPF中的Textbox控件是可以自动换行的,只要设置TextWrapping属性为”Wrap”即可&#xff…

基因婴儿事未了!人类将在2031年开始实现永生?

来源:WPR前段时间,中国首例“基因编辑”婴儿事件闹得沸沸扬扬,这件事也发酵到了国外,不到一天,各路外媒全部刷屏了。在这些外媒报道里,最有意思的要数《纽约时报》杂志了。他们就“基因编辑”问题,请到了作…

Tensorflow深度学习应用(进阶篇)

#codinggbk进阶篇相关数据:标签:要预测的事物特征:用于描述数据的输入变量样本:数据的特定实例有标签的样本:{特征,标签}无标的样本:{特征,...}模型:将样本映射到预测标签…

Java之Synchronized与锁升级

Synchronized与锁升级 一、概述 在多线程并发编程中 synchronized 一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着 Java SE 1.6 对 synchronized 进行了各种优化之后,有些情况下它就并不那么重了。 本文详细介绍 Java SE 1.6 中为…

机器学习算法

最近,机器学习岗位越来越火爆,那么自然对算法的一些能力要求也是越来越高,想要在求职者中脱颖而出,起步自然非常重要。 我和小伙伴们一起研讨了 2019 年校招的一些算法面试,有些是亲自经历的,也有伙伴分享的…

深度强化学习在智能城市领域应用介绍

来源:海豚数据科学实验室深度强化学习是近年来热起来的一项技术。深度强化学习的控制与决策流程必须包含状态,动作,奖励是三要素。在建模过程中,智能体根据环境的当前状态信息输出动作作用于环境,然后接收到下一时刻状…

Tensorflow深度学习应用(进阶篇)-回归(函数拟合训练)-可视化

#codinggbk进阶篇:多元回归:建模问题:Yx1xx1x2xw2x3xw3...xnxwnb,矩阵简化表示YXWbnumpy库基础:整型的一个数字, 不能取得其shape(维度),通过np.array()可以将其转换成一个标量&…

Tensorflow深度学习应用(进阶篇)-1

#codinggbk 逻辑回归:逻辑回归需要将输出控制在[0,1]之间,可以使用函数将值映射在[0,1]之间Sigmod函数,逻辑回归一般采用对数损失函数;from pylab import mpl mpl.rcParams[font.sans-serif] [SimHei] #设置显示绘图显示中文 mp…

​20210716未来智能实验室收录资料

20210716未来智能实验室收录资料特别推荐:置顶收录未来智能实验室在人民日报《学术前沿》发表的城市大脑最新综述研究论文和报告《城市大脑的起源、发展与未来趋势》。本期收录前沿科技进展材料52篇1.《科学》:媲美AlphaFold2的蛋白质结构预测新工具问世…

元宇宙深度研究报告:元宇宙是互联网的终极形态?

报告出品方:华安证券作者:尹沿技、张天、姚天航1 元宇宙:剑指互联网的“终极形态”1.1 元宇宙指向互联网的终极形态元宇宙(Metaverse)概念起源于科幻小说,或指向互联网的“终极形态”。Metaverse 一词来源于…

Unity基础

Unity3D 游戏开发 第一章 基础知识 Unity是一个用于创建游戏和三维互动内容的开发工具,是一个专业游戏引擎。 2D游戏:视角锁定,二维坐标。 3D游戏:任意视角,三维坐标。 虚拟现实(VR)&#x…

英特尔史上最大收购!英特尔拟300亿美元收购GF,审批成关键!

来源:EETOP据《华尔街日报》报道,知情人士称,英特尔打算斥资约300 亿美元收购晶圆代工大厂格罗方德(GlobalFoundries),以加速生产更多芯片,如果收购成功,这将是英特尔有史以来最大的…