日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java graphics类详解_java 基础二 Graphics类

發布時間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java graphics类详解_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基礎-DButils工具類(QueryRunner)詳解

Java基礎-DButils工具類(QueryRunner)詳解 作者:尹正杰 版權聲明:原創作品,謝絕轉載!否則將追究法律責任. 如果只使用JDBC進行開發,我們會發現冗余代碼過多,為了簡化JDBC ...

Java面試題總結之Java基礎&lpar;二&rpar;

Java面試題總結之Java基礎(二) 1.寫clone()方法時,通常都有一行代碼,是什么? 答:super.clone(),他負責產生正確大小的空間,并逐位復制. 2.GC 是什么? 為什么要有G ...

Java基礎之File類的使用

Java基礎之File類的使用 1.File類的構造方法和常用方法 2.對File中listFile(FileNameFilter name)學習 3.與File文件類相關的實現 File類的構造方法 ...

java基礎&lpar;二&rpar; -對象和類

Java 對象和類 Java作為一種面向對象語言.支持以下基本概念: 多態 繼承 封裝 抽象 類 對象 實例 方法 重載 對象:對象是類的一個實例(對象不是找個女朋友),有狀態和行為.例如,一條狗是一 ...

java基礎&lpar;二&rpar;-----java的三大特性之繼承

在中有這樣一句話:復用代碼是Java眾多引人注目的功能之一.但要想成為極具革命性的語言,僅僅能夠復制代碼并對加以改變是不夠的,它還必須能夠做更多的事情.在這句 ...

Java基礎:Object類中的equals與hashCode方法

前言 這個系列的文章主要用來記錄我在學習和復習Java基礎知識的過程中遇到的一些有趣好玩的知識點,希望大家也喜歡. 一切皆對象 ? 對于軟件工程來說面向對象編程有一套完整的解決方案:OOA.OOD.O ...

Java基礎&lpar;二&rpar; 基本類型數據類型、包裝類及自動拆裝箱

我們知道基本數據類型包括byte, short, int, long, float, double, char, boolean,對應的包裝類分別是Byte, Short, Integer, Long ...

&lbrack; 轉載 &rsqb; Java基礎二

前言 關于贏在面試的Java題系列基本收集整理完成了,所有題目都是經過精心挑選的,很基礎又考驗求職者的基本功,應該說被面試到的幾率很大.這里整理挑選出來供大家面試前拿來看一看,所有題目整理自網絡,有一 ...

Java基礎二:常量池

目錄: 自動裝箱與拆箱 常量池 ==與equals()區別 1. 自動裝箱與拆箱 Java是一個近乎純潔的面向對象編程語言,但是為了編程的方便還是引入了基本數據類型,但是為了能夠將這些基本數據類型當成 ...

隨機推薦

Android之控件使用

Android系統為我們提供了大量的控件,例如:開關控件.單選按鈕.多選按鈕.單選菜單等等,那么這些控件如何使用呢?本篇我將帶領大家一道學習一下如何使用這些控件.所謂無圖無真相,先讓大家看一下效果圖: ...

javascript設計模式實踐之職責鏈--具有百葉窗切換圖片效果的JQuery插件(三)

在上一篇里,通過采用模板方法模式完成了切換效果對象的構建編寫. 接下來就是完成各效果對象的調 ...

OpenStack 企業私有云的若干需求(10):OpenStack 的前景和錢景

本系列會介紹OpenStack 企業私有云的幾個需求: 自動擴展(Auto-scaling)支持 多租戶和租戶隔離 (multi-tenancy and tenancy isolation) 混合云( ...

【轉】JVM 基礎知識

幾年前寫過一篇關于JVM調優的文章,前段時間拿出來看了看,又添加了一些東西.突然發現,基礎真的很重要.學習的過程是一個由表及里,再由里及表的過程,所謂的“溫故而知新”.而真正能走完這個輪回的人,也就能 ...

【Spring Cloud筆記】 斷路器-hystrix

在微服務架構中,一個微服務的超時失敗可能導致瀑布式連鎖反映,Spring Cloud Netflix 的斷路器Hystrix通過自主反饋,防止了這種情況發生.下面介紹簡單的斷路器使用方法. [step ...

test markdown to html

軟件版本 PHP 5.5.25 Yaf 2.3.2 域名 正式域名 gm.mgame.qihoo.net demo域名 demo.gm.mgame.qihoo.net 配置 配置目錄 后臺配置 con ...

第11章 拾遺5:IPv6和IPv4共存技術(3)&lowbar;NAT-PT技術【全書完】

6.4 NAT-PT (1)NAT-PT和NAT的差別 ①NAT-PT(附帶協議轉換的網絡地址轉換)技術秉承NAT技術的思想,但在原理方面大有不同. ②NAT-PT和NAT本質的區別在于應用場合的不同 ...

PAT《數據結構學習與實驗指導》實驗項目集 2-09 2-10 2-11 2-12 2-13

pat 2-09 裝箱問題模擬 #include #include #include using namespace st ...

MySQL中UNSIGNED和ZEROFILL的介紹

UNSIGNED: 將數字類型無符號化,這與C和C++這些程序語言的unsigned含義相同. INT的類型范圍-2 147 483 648~2 147 483 647 INT UNSIGNED范圍0 ...

yii2 表單輸入框設置

= $form->field($userRole, 'userid', ['options' =>['class' => 'bigDiv'] ])->textInpu ...

總結

以上是生活随笔為你收集整理的java graphics类详解_java 基础二 Graphics类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。