Java Graphics 图形绘制
Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形、画字符串等。
画线段
drawLine
public abstract void drawLine(int x1,
int y1,
int x2,
int y2)
- 在此图形上下文的坐标系中,使用当前颜色在点
(x1, y1)和(x2, y2)之间画一条线 -
- 参数:
x1- 第一个点的 x 坐标。y1- 第一个点的 y 坐标。x2- 第二个点的 x 坐标。y2- 第二个点的 y 坐标。-
g.drawLine(10, 50, 100, 100);
画矩形
drawRect
public void drawRect(int x,
int y,
int width,
int height)
- 绘制指定矩形的边框。矩形的左边缘和右边缘分别位于
x和x + width。上边缘和下边缘分别位于y和y + height。使用图形上下文的当前颜色绘制该矩形。 -
- 参数:
x- 要绘制矩形的 x 坐标。y- 要绘制矩形的 y 坐标。width- 要绘制矩形的宽度。height- 要绘制矩形的高度。-
g.drawRect(120, 50, 200, 100);
画椭圆形
public abstract void drawOval(int x,
int y,
int width,
int height)
- 绘制椭圆的边框。得到一个圆或椭圆,它刚好能放入由
x、y、width和height参数指定的矩形中。椭圆覆盖区域的宽度为
width + 1像素,高度为height + 1像素。 -
- 参数:
x- 要绘制椭圆的左上角的 x 坐标。y- 要绘制椭圆的左上角的 y 坐标。width- 要绘制椭圆的宽度。height- 要绘制椭圆的高度。-
g.drawOval(160, 160, 200, 100);
画带颜色的图形
setColor
public abstract void setColor(Color c)
- 将此图形上下文的当前颜色设置为指定颜色。使用此图形上下文的所有后续图形操作均使用这个指定的颜色。
-
- 参数:
c- 新的呈现颜色。-
g.setColor(Color.yellow);
g.fillRect(20,70,20,30); // 画矩形着色块
画圆
drawRoundRect
public abstract void drawRoundRect(int x,
int y,
int width,
int height,
int arcWidth,
int arcHeight)
- 用此图形上下文的当前颜色绘制圆角矩形的边框。矩形的左边缘和右边缘分别位于
x和x + width。矩形的上边缘和下边缘分别位于y和y + height。 -
- 参数:
x- 要绘制矩形的 x 坐标。y- 要绘制矩形的 y 坐标。width- 要绘制矩形的宽度。height- 要绘制矩形的高度。arcWidth- 4 个角弧度的水平直径。arcHeight- 4 个角弧度的垂直直径。-
g.setColor(Color.red); g.fillRoundRect(80,100,100,100,100,100);//画圆块
画圆弧
drawArc
public abstract void drawArc(int x,
int y,
int width,
int height,
int startAngle,
int arcAngle)
- 绘制一个覆盖指定矩形的圆弧或椭圆弧边框。
得到的弧从
startAngle开始跨越arcAngle度,并使用当前颜色。对角度的解释如下:0 度角位于 3 点钟位置。正值指示逆时针旋转,负值指示顺时针旋转。弧的中心是矩形的中心,此矩形的原点为 (x, y),大小由
width和height参数指定。得到的弧覆盖
width + 1像素宽乘以height + 1像素高的区域。角度是相对于外接矩形的非正方形区域指定的,45 度角始终落在从椭圆中心到外接矩形右上角的连线上。因此,如果外接矩形在一个轴上远远长于另一个轴,则弧段的起点和结束点的角度将沿边框长轴发生更大的偏斜。
-
- 参数:
x- 要绘制弧的左上角的 x 坐标。y- 要绘制弧的左上角的 y 坐标。width- 要绘制弧的宽度。height- 要绘制弧的高度。startAngle- 开始角度。arcAngle- 相对于开始角度而言,弧跨越的角度。g.drawArc(10,40,90,50,0,180); // 画圆弧线 g.drawArc(100,40,90,50,180,180); // 画圆弧线 g.setColor(Color.yellow);
g.fillArc(10,100,40,40,0,-270); // 填充缺右上角的四分之三的椭圆 g.setColor(Color.green);
g.fillArc(60,110,110,60,-90,-270); // 填充缺左下角的四分之三的椭圆
画多边形
/**
* 绘制一个由 x 和 y 坐标数组定义的闭合多边形。每对 (x, y) 坐标定义一个点。
*/
public abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
/**
* 填充由 x 和 y 坐标数组定义的闭合多边形。
*/
public abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
int px[] = { 210, 220, 270, 250, 240 };
int py[] = { 220, 250, 300, 270, 220 };
g.drawPolygon(px, py, px.length);
画字符串
public abstract void drawString(String str,
int x,
int y)
- 使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。最左侧字符的基线位于此图形上下文坐标系的 (x, y) 位置处。
-
- 参数:
str- 要绘制的 string。x- x 坐标。y- y 坐标。g.setColor(Color.GREEN);
g.setFont(new Font("楷体", Font.BOLD, 20));
g.drawString("使用画笔绘制的字符串内容", 220, 345);
Java Graphics 图形绘制的更多相关文章
- Java Graphics 2D绘制图片 在Liunx上乱码
绘图的代码工具类 package com.gwzx.framework.captcha; import java.awt.Color; import java.awt.Font; import jav ...
- java 2D图形绘制
package jisuan; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; imp ...
- Java入门:绘制简单图形
在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.aw ...
- (转)GPU图形绘制管线
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”第二章. 图形绘制管线描述GPU渲染流程, ...
- 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器
1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...
- 用java Graphics生成验证码
以下下是API文档对Graphics的介绍! Graphics 类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制. Graphics 对象封装了 Java ...
- Java Swing图形界面开发
本文转自xietansheng的CSDN博客内容,这是自己见过的最通俗易懂.最适合快速上手做Java GUI开发的教程了,这里整合一下作为自己以后复习的笔记: 原文地址:https://blog.cs ...
- 【Windows编程】系列第五篇:GDI图形绘制
上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...
- 13个JavaScript图表(JS图表)图形绘制插件【转】
现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...
随机推荐
- Spring容器中bean的生命周期以及关注spring bean对象的后置处理器:BeanPostProcessor(一个接口)
Spring IOC 容器对 Bean 的生命周期进行管理的过程: 1.通过构造器或工厂方法创建 Bean 实例 2.为 Bean 的属性设置值和对其他 Bean 的引用 3.将 Bean 实例传递给 ...
- WinForm如何去掉右边和下边的白边
系统给的窗体样式都缺乏美感,想要漂亮的UI只能自己做,很容易实现 1.新建窗体,设置FormBorder为None 这时的窗体就只有一个Panel(Form自带的默认Panel),没有边框,没有标题栏 ...
- C#图片处理,缩略图制作
准备参数:图片文件流.文件名 方法:1.先将图片流通过System.Drawing.Image.FromStream方法转成图片对象 2.通过图片对象.GetThumbnailImage方法生成自定义 ...
- webform获取微信用户的授权
这是一个利用webform做出来的简单demo,微信授权,获取微信用户的基本信息.方便以后加深记忆. public partial class Index : System.Web.UI.Page { ...
- WebService 工作原理及实例教程
一.WebService到底是什么? 先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统 ...
- Python:Selenium Chrome无弹窗+property/attribute/text
我们在用Selenium写自动化程序时候,并不希望程序在实际运行过程中一直弹Chrome窗口,这个时候就需要让Chrome默默打开,自动读取数据,然后默默关闭掉就好. 以下是让chrome用无界面形式 ...
- SQL Server基础优化
1.先过滤简单且能筛选大部分数据出去的条件: 2.只查询有用的数据 不返回自己不需要的列,尽量不要使用select *: 不要返回自己不需要的行,尽量使用where条件来过滤自己需要的内容: 考虑使用 ...
- leetcode 78. 子集 JAVA
题目: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], ...
- PyMysql复习
参考:http://www.cnblogs.com/liwenzhou/p/8032238.html 使用pycharm操作数据库. 填一个数据库名,User:填root 填写要连接的数据库. 建表. ...
- WPF一步步开发XMPP IM客户端1:入门
[起因&目标] 因为工作原因接触openfire服务端和spark客户端开发,主要是基于openfire扩展开发了针对企业用途的服务器插件,还开发了各个平台上的客户端(Windows\mac\ ...