java 基础二 Graphics类
一、处理图形
1.画直线
void drawLine (int startx , int starty , int endx , int endy)
参数列表:直线开始的横坐标、纵坐标,直线结束的横坐标、纵坐标。
2.画矩形
1) 矩形边框:void drawRect(int top , int left , int width , int height )
2) 实心矩形 :void fillRect(int top , int left , int width , int height)
参数列表:矩形的左上角坐标(x,y),宽度和高度。
3.圆角矩形
1) 圆角矩形边框 : void drawRoundRect(int top , int left , int width , int height , int xDiam , int yDiam)
2 )实心圆角矩形void fillRoundRect(int top , int left , int width , int height , int xDiam , int yDiam)
参数列表 :圆角矩形的左上角坐标,宽度,高度,X轴上的弧度,Y轴上的弧度
4.画椭圆和圆形
1)空心圆:void drawOval(int top , int left , int width , int height)
2)实心圆:void fillOval(int top , int left , int width , int height)
参数列表 :左上角坐标,宽,高
5.画圆弧
1)空心圆弧:void drawArc(int top , int left , int width , int height , int startAngle , int sweepAngle);
2)实心圆弧: void fillArc(int top , int left , int width , int height , int startAngle , int sweepAngle);
参数列表 :在左上角坐标为(top , left)宽为width 高为 height的矩形中画圆弧 ,startAngle是与3点钟的角度 ,sweepAngel是与startAngle的角度。
6.画多边形
1)空心多边形:void drawP
2)实心多边形:
import java.awt.Frame;
import java.awt.Panel;
import java.awt.Graphics;
import java.awt.Color;
public class Test04{ public static void main(String[] args){ Frame f = new Frame();
f.setSize(1000,1000);
MyPanel mp = new MyPanel();
f.add(mp);
f.show();
}
}
class MyPanel extends Panel{ public void paint(Graphics g){ g.drawLine(100,50,100,100);
g.drawString("Hello World !",120,100);
g.setColor(Color.green);
g.drawRect(100,100,200,100);
g.fillRect(350,100,200,100);
g.drawRoundRect(600,100,200,100,50,50);
g.fillRoundRect(850,100,200,100,20,100);
g.drawOval(100,250,100,100);
g.fillOval(250,250,80,100);
g.drawArc(350,250,100,100,0,90);
g.fillArc(450,250,100,100,0,90);
g.fillArc(550,250,100,100,10,80); }
}
二、Graphics类的应用
1、绘制五角星
import java.awt.Frame;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Panel;
import java.math.*;
public class Test02
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setSize(1000,1000);
f.setBackground(Color.black);
MyPanel mp = new MyPanel();
f.add(mp);
f.show();
}
}
class MyPanel extends Panel
{
public void paint(Graphics g)
{
double xA= 2 , yA= 2 , c = 2,j36,j18,j54;
double xB ,yB ,xC,yC,xD ,yD,xE ,yE,xf,yf,xg,yg;
j36 = Math.toRadians(36);//转化成角度
j18 = Math.toRadians(18);
j54 = Math.toRadians(54);
xB = xA+c*Math.cos(j36);
yB = yA-c*Math.sin(j36);
xC = xA+2*c*Math.cos(j36);
yC = yA;
xD = xA+c*Math.sin(j18);
//System.out.println("xD ="+xD+" c*Math.sin(18)"+c*Math.sin(18) );
yD = yA+c*Math.cos(j18);
xE = xC - c*Math.sin(j18);
yE = yD;
xf = xD+c/2;
yf = yD-(c/2)*Math.tan(j36);
xg = xE - c/(2*Math.sin(j54))*Math.sin(j18);
yg = yE - c/(2*Math.sin(j54))*Math.cos(j18);
//int xpoints[] = {(int)(xB*100),(int)(xD*100),(int)(xC*100),(int)(xA*100),(int)(xE*100),(int)(xB*100)};
//int ypoints[] = {(int)(yB*100),(int)(yD*100),(int)(yC*100),(int)(yA*100),(int)(yE*100),(int)(yB*100)};
int xpoints[] = {(int)(xB*100),(int)(xD*100),(int)(xE*100),(int)(xB*100)};
int ypoints[] = {(int)(yB*100),(int)(yD*100),(int)(yE*100),(int)(yB*100)};
int num = 4 ;
//System.out.println((int)(xA*100)+" "+(int)(yA*100)+" , "+(int)(xD*100)+" "+(int)(yD*100));
g.setColor(Color.white);
g.fillPolygon(xpoints,ypoints,num);
int xpoints1[] = {(int)(xA*100), (int)(xC*100),(int)(xE*100),(int)(xA*100)};
int ypoints1[] = {(int)(yA*100),(int)(yC*100),(int)(yE*100),(int)(yA*100)};
g.fillPolygon(xpoints1,ypoints1,num);
g.setColor(Color.black);
int xpoints2[] = {(int)(xD*100),(int)(xf*100),(int)(xE*100),(int)(xD*100)};
int ypoints2[] = {(int)(yD*100),(int)(yf*100),(int)(yE*100),(int)(yD*100)};
g.fillPolygon(xpoints2,ypoints2,4);//减去多余的部分
int xpoint3[] = {(int)(xE*100),(int)(xg*100),(int)(xC*100),(int)(xE*100)};
int ypoint3[] = {(int)(yE*100),(int)(yg*100),(int)(yC*100),(int)(yE*100)};
g.fillPolygon(xpoint3,ypoint3,4);//减去多余的部分 }
}


五角星的坐标图 运行结果图
2.随机输出星号
import java.awt.Frame;
import java.awt.Panel;
import java.awt.Graphics;
public class Test03
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setSize(500,500);
MyPanel mp = new MyPanel();
f.add(mp);
f.show(); }
}
class MyPanel extends Panel
{
public void paint(Graphics g)
{
for(int i=0 ;i<50;i++)
{
int x = (int)(Math.random()*500);//生成0-500的随机数
int y = (int)(Math.random()*500);
g.drawString("*",x,y);
}
}
}
java 基础二 Graphics类的更多相关文章
- java基础二、类与继承
员工类 Employee, 经理类:Manager public class Employee { private String name; private double salary; privat ...
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- Java面试题总结之Java基础(二)
Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...
- Java入土--Java基础(二)
Java基础(二) 接上一讲,我们接着来聊聊Java的一些基础知识,下一讲就会进行流程的控制. 类型转换 首先呢,是类型的转换,接上一个内容的数据类型,类型转换就是数据类型更进一步的应用. 由于Jav ...
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- java基础(二) -对象和类
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一 ...
- 【Java基础】常用类
常用类 字符串相关的类 String类:代表字符串,使用一对 "" 引起来表示. public final class String implements java.io.Seri ...
- java基础-01代理类
简单的代理类实现案例主实现类:ProxyTestimport java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;im ...
- java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
随机推荐
- 定时刷新之setTimeout(只一次)和setInterval(间隔相同时间)的使用
setTimeout和setInterval的使用 这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript.不过两者各有各的应用场景. 方 法 实际上,setTimeout和setIn ...
- 可以改变this指向的方法
this一般指向的是当前被调用者,但也可以通过其它方式来改变它的指向,下面将介绍三种方式: 1.call用作继承时: function Parent(age){ this.name=['mike',' ...
- LeetCode之100. Same Tree
------------------------------------------ 递归比较即可 AC代码: /** * Definition for a binary tree node. * p ...
- Power BI的一些视频演示资源
Power BI作为Self Service BI的方案,得到了人们的广泛关注.Power BI里的大多数组件目前还都是预览版的阶段,但是我们已经可以从powerbi.com网站下体验到其相当给力的一 ...
- PCM数据格式,多少字节算一帧
转自:http://blog.chinaunix.net/uid-9185047-id-3327302.html Somehow i remember that normally 2048 sampl ...
- You don't have permission to access /index.php on this server
<Directory /> #AllowOverride none #Require all denied</Directory>
- [自动运维]oracle自动备份
数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们 ...
- linux(centos)搭建SVN服务器
安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 ...
- Trie URAL 7192 Chip Factory (15长春J)
题目传送门 题意:从n个数中选出不同的三个数a b c,使得(a+b)^c 最大 分析:先将所有数字按位插入到字典树上,然后删除两个数字,贪心询问与剩下的数字最大异或值. /************* ...
- SRM 618 DIV1 500
非常棒的组合问题,看了好一会,无想法.... 有很多做法,我发现不考虑顺序的最好理解,也最好写. 结果一定是两种形式 A....A dp[n-1] A...A...A sgma(dp[j]*dp[ ...