繪制六邊形的代碼java 編程六邊形

為什么java換了電腦就運行不了;再請問怎樣在六邊形中繪制填滿六邊形,用數(shù)組。

1、Java程序必須運行在有Java環(huán)境的電腦中

10年積累的網(wǎng)站制作、做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先做網(wǎng)站后付款的網(wǎng)站建設流程,更有澤普免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

2、給你提供一個多邊形填充的例子

public static void drawSelPolygon(Graphics2D g2, Color frameColor, int[] x, int[] y,

int numPoints) {

g2.setColor(frameColor);

//初始化多邊形

Polygon p = new Polygon(x, y, numPoints);

//取得多邊形外接矩形

Rectangle r = p.getBounds();

//裁切

g2.setClip(p);

//繪制填充線

for (int j = r.y; j-r.width r.y + r.height; j = j + 6) {

//--NG

Line2D line = new Line2D.Float(r.x, j, (r.x + r.width), j-r.width);

g2.draw(line);

}

//繪制多邊形

g2.drawPolygon(p);

}

如何用java GUI繪制六邊形

用路徑來畫 一般用GeneralPath類來實現(xiàn),給出paintComponent方法的代碼,供參考

protected?void?paintComponent(Graphics?g)?{

super.paintComponent(g);

Graphics2D?g2d?=?(Graphics2D)g;

//正六邊形數(shù)據(jù)

float?r?=?100;?//邊長

float[]?x1?=?{0, ????0.5f*r,???1.5f*r,???2*r,??????1.5f*r,?0.5f*r};

float[]?y1?=?{0.866f*r,?1.732f*r,?1.732f*r,?0.866f*r,?0, ??0};

g2d.translate(100,?100);

GeneralPath?p?=?new?GeneralPath();

p.moveTo(x1[0],?y1[0]);

for?(int?i?=?1;?i??y1.length;?i++)?{

p.lineTo(x1[i],?y1[i]);

}

p.closePath();

g2d.draw(p);

}

求Java畫圖版,能畫正多邊形的代碼!

public class MiniDraw implements ActionListener, MouseListener{ // Fields private JFrame frame = new JFrame("MiniDraw");

private DrawingCanvas canvas = new DrawingCanvas(); private JButton colorButton; // the button for colour, so we can change its background to the current color.

private JTextField textField; // the field for entering text to put on the canvas // fields for recording the information needed to perform the next action

private enum Action {Line,Rect, Oval, Triangle, Text, Dot, Move, Delete, Push, Pull}; private int pressedX; //where the mouse was pressed

private int pressedY; //where the mouse was pressed

private Action currentAction = Action.Line;

private Color currentColor = Color.black; private ListShape shapes = new ArrayList Shape();

/** Constructor sets up the GUI. */

public MiniDraw(){

frame.setSize(800,600); //The graphics area

canvas.addMouseListener(this);

frame.getContentPane().add(canvas, BorderLayout.CENTER); //The buttons

JPanel topPanel = new JPanel( );

frame.getContentPane().add(topPanel, BorderLayout.NORTH);

JPanel botPanel = new JPanel( );

frame.getContentPane().add(botPanel, BorderLayout.SOUTH);

addButton(topPanel, "New");

addButton(topPanel, "Open");

addButton(topPanel, "Save");

addButton(topPanel, "Delete");

addButton(topPanel, "Move");

colorButton = addButton(topPanel, "Color"); // remember the button so we can change its colour

addButton(topPanel, "Push");

addButton(topPanel, "Pull");

addButton(topPanel, "Reverse");

addButton(topPanel, "Quit"); botPanel.add(new JLabel("Shapes: "));

addButton(botPanel, "Line");

addButton(botPanel, "Rect");

addButton(botPanel, "Oval");

addButton(botPanel, "Triangle");

addButton(botPanel, "Dot");

addButton(botPanel, "Text");

textField = new JTextField("Enter text", 12);

botPanel.add(new JLabel(" : "));

botPanel.add(textField); frame.setVisible(true);

} /** Utility method to make new button and add it to the panel

Returns the button, in case we need it. */

private JButton addButton(JPanel panel, String name){

JButton button = new JButton(name);

button.addActionListener(this);

panel.add(button);

return button;

} /** Respond to button presses */ public void actionPerformed(ActionEvent e){

String button = e.getActionCommand();

//System.out.printf("Button: %s\n", button); //for debugging

if (button.equals("New") )

newDrawing();

else if (button.equals("Open") )

openDrawing();

else if (button.equals("Save") )

saveDrawing();

else if (button.equals("Color") )

selectColor();

else if (button.equals("Reverse") )

reverseDrawing();

else if (button.equals("Quit") )

frame.dispose();

else{ //

currentAction = Action.valueOf(button); // converts the String to an Action.

}

} /** Sets the current color.

* Also changes the color of the Color button and sets the background color of the canvas */

private void selectColor(){

Color newColor = JColorChooser.showDialog(frame,"Choose Color for new shapes", currentColor);

if (newColor!=null){

currentColor=newColor;

colorButton.setBackground(currentColor);

}

} // Respond to mouse events

/** When mouse is pressed, remember the position in order to construct the Shape when

* the mouse is released. */

public void mousePressed(MouseEvent e) {

int x = e.getX(); int y = e.getY();

//System.out.printf("Pressed at (%d, %d)\n", x, y); //for debugging

pressedX = x;

pressedY = y;

} /** When the Mouse is released, depending on the currentAction,

* either construct the shape that was being drawn, or perform the

* action (delete or move) on the shape under the point where the mouse was pressed.*/

public void mouseReleased(MouseEvent e) {

int x = e.getX(); int y = e.getY();

//System.out.printf("Released at (%d, %d)\n", x, y); //for debugging

if (currentAction==Action.Move)

moveShape(pressedX, pressedY, x, y);

else if (currentAction==Action.Delete)

deleteShape(x, y);

else if (currentAction==Action.Push)

pushShapeBackward(x, y);

else if (currentAction==Action.Pull)

pullShapeForward(x, y);

else

addShape(pressedX, pressedY, x, y);

} public void mouseClicked(MouseEvent e) {} //needed to satisfy interface

public void mouseEntered(MouseEvent e) {} //needed to satisfy interface

public void mouseExited(MouseEvent e) {} //needed to satisfy interface

// Helper methods for implementing the button and mouse actions

/** Start a new drawing. */

public void newDrawing(){

shapes = new ArrayListShape();

canvas.clear();

}

/** Open a file, and read all the shape descriptions into the current drawing. */

public void openDrawing(){

String fname = FileChooser.open();

if (fname==null) return;

try {

Scanner file = new Scanner(new File(fname));

//System.out.printf("Opening file %s\n", fname);

shapes = new ArrayListShape();

while (file.hasNext()){

String shapetype = file.next().toLowerCase();

if (shapetype.equals("oval"))

shapes.add(new Oval(file));

else if (shapetype.equals("rectangle"))

shapes.add(new Rectangle(file));

if (shapetype.equals("line"))

shapes.add(new Line(file));

if (shapetype.equals("textshape"))

shapes.add(new TextShape(file));

else if (shapetype.equals("triangle"))

shapes.add(new Triangle(file));

else if (shapetype.equals("dot"))

shapes.add(new Dot(file));

}

render();

}

catch(IOException e) {

System.out.println(e.getMessage());

e.printStackTrace();

}

} /** Save the current drawing to a file. */

public void saveDrawing(){

String fname =FileChooser.save();

if ( fname == null )

return;

try{

PrintStream f = new PrintStream( new File( fname ));

for ( Shape shape : shapes )

f.println( shape.toString());

f.close ();

}

catch(IOException ex){

System.out.println(ex.getMessage());

ex.printStackTrace();

}

}

/** Returns the shape under the position (x y), or null if no such shape */

public Shape findShape(int x, int y){

for (int i = shapes.size()-1; i=0; i--){ // must go backwards, so can't use foreach

Shape shape = shapes.get(i);

if (shape.pointOnShape(x, y))

return shape;

}

return null; // no shape found at position

}

/** Moves the shape that was under the mousePressed position (pressedX, pressedY)

to where the mouse was released.

Ie, move it by (newX-pressedX) and (newY-pressedY)

*/

public void moveShape(int fromX, int fromY, int toX, int toY){

//System.out.printf("Moving shape under (%d, %d) to (%d, %d)\n", pressedX, pressedY, newX, newY); //for debugging

Shape shape = findShape(fromX, fromY);

if (shape!= null)

shape.moveBy((toX-fromX), (toY-fromY));

render();

} /** Deletes the shape that was under the mouseReleased position (x, y)

*/

public void deleteShape(int x, int y){ for ( Shape shape : shapes) {

if ( shape.pointOnShape(x, y ))

shapes.remove ( shape );

}

render();

}

/** Pull the shape under the mouse one position closer to the "front"

of the drawing */

public void pullShapeForward(int x, int y){

// System.out.printf("Pulling shape under (%d, %d) forward\n", x, y); //for debugging

// YOUR CODE HERE

Shape shape = findShape( x, y );

if (shape!=null ) {

int index = shapes.indexOf(shape);

if ( index shapes.size()-1){

shapes.remove(index);

shapes.add( index+1,shape);

}

render();

}

}

/** Push the shape under the mouse one position further from the "front"

of the drawing */

public void pushShapeBackward(int x, int y){

//System.out.printf("Pushing shape under (%d, %d) backward\n", x, y); //for debugging

// YOUR CODE HERE

Shape shape = findShape(x, y );

if ( shape!=null ){

int index = shapes.indexOf(shape);

if( index 0 )

shapes.remove( index);

shapes.add( index-1, shape);

}

render();

}

/** Reverse the order of the shapes in the drawing */

public void reverseDrawing(){ ListShapetemp = new ArrayListShape();

while ( shapes.size() 0 ) {

temp.add ( shapes.remove(shapes.size()-1));

}

shapes= temp;

render();

}

/** Construct a new Shape object of the appropriate kind (depending on currentAction)

Uses the appropriate constructor of the Line, Rectangle, Oval, TextShape, or Triangle classes.

adds the shape it to the collection of shapes in the drawing, and

renders the shape on the canvas */

public void addShape(int x1, int y1, int x2, int y2){

//System.out.printf("Drawing shape %s, at (%d, %d)-(%d, %d)\n", currentAction, pressedX, pressedY, x, y); //for debugging

Shape shape = null;

if (currentAction==Action.Line)

shapes.add(new Line(x1, y1, x2, y2, currentColor));

if (currentAction==Action.Triangle)

shapes.add(new Triangle(x1, y1, x2, y2, currentColor));

if (currentAction==Action.Dot)

shapes.add(new Dot(x2, y2, currentColor));

else if (currentAction==Action.Text)

shapes.add(new TextShape(x2, y2, textField.getText(), currentColor));

else{

int left= Math.min(x1, x2);

int top= Math.min(y1, y2);

int width= Math.abs(x1 - x2);

int height= Math.abs(y1 - y2);

if (currentAction==Action.Rect)

shapes.add(new Rectangle(left, top, width, height, currentColor));

else if (currentAction==Action.Oval)

shapes.add(new Oval(left, top, width, height, currentColor));

}

render();

} public void render(){

canvas.clear(false);

for (Shape shape : shapes){

shape.render(canvas);

}

canvas.display();

} public static void main(String args[]){

new MiniDraw();

}}

用java寫一個六邊形

public class test

{

public static void main(String[] args)

{

for(int i=0;i4;i++)

{

for(int n=0;n4-i;n++)

{

System.out.print(" ");

}

for(int j=0;j4+i*2;j++)

{

System.out.print("*");

}

System.out.println();

}

for(int i=3;i0;i--)

{

for(int n=0;n5-i;n++)

{

System.out.print(" ");

}

for(int j=0;ji*2+2;j++)

{

System.out.print("*");

}

System.out.println();

}

}

}

急:drawpolygon()函數(shù)是怎么用的?

java圖形圖像——繪制多邊形

// 程序:繪制多邊形

// 范例文件:DrawPolygon.java

import java.awt.*;

import java.applet.*;

public class DrawPolygon extends Applet {

int X[] = {10,180,90,110,130,50}; //頂點X坐標

int Y[] = {15,55,95,115,135,180}; //頂點Y坐標

public void paint(Graphics g)

{

g.drawPolygon(X,Y,6); //繪制六邊形

}

}

drawPolygon()方法使用三個參數(shù),前兩個參數(shù)為兩個坐標點數(shù)組,第三個參數(shù)為坐標點的個數(shù)

懂JAVA的來幫幫忙 謝謝

1:設置一個boolean變量,響應button事件后,

falg = !falg

if(falg) {

button.setText("click me");

} else {

button.setText("click me again");l

}

2:設置顏色為黃色,當然用你的Grapics,代碼如下:

Grapics g = getGrapics;

g.setCloro(Cloro.(黃色,我不知道怎么拼寫));

g.drawline(int x,int y,int i,int j) //括號里面有參數(shù),自己查看sdk,我沒環(huán)境,寫不出來。應該是這樣!

g.drawline(int x,int y,int i,int j)

g.drawline(int x,int y,int i,int j)

g.drawline(int x,int y,int i,int j)

g.drawline(int x,int y,int i,int j)

g.drawline(int x,int y,int i,int j)

3:也是通過Grapics來畫,getGrapics就可以了。

4:沒明白你的意思,應該是說獲取html里的prarm吧?然后在根據(jù)prarm的值設置某些東西吧?

getParamXXX() //xxx忘了怎么寫,用IDE就不用記,陰文很爛的。

文章題目:繪制六邊形的代碼java 編程六邊形
轉(zhuǎn)載來源:http://www.muchs.cn/article28/docsecp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計網(wǎng)頁設計公司、域名注冊、ChatGPT、動態(tài)網(wǎng)站、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司