menggambar persegi panjang

Saya sedang menulis program yang menerima koordinat dari pengguna dan menggambar beberapa bentuk di layar dengan bintang(*)

misal Persegi Panjang yaitu persegi panjang=100,150,50,50 dengan x,y,lebar,tinggi. bagaimana saya bisa melakukannya??


person Community    schedule 20.12.2010    source sumber
comment
tidak hanya di layar dengan bintang   -  person    schedule 20.12.2010
comment
Bisakah Anda membuat daftar semua bentuk yang perlu Anda dukung?   -  person Matthew Cox    schedule 20.12.2010
comment
persegi panjang, segitiga persegi dan segi lima..Saya akan menerima koordinat dari pengguna   -  person    schedule 20.12.2010
comment
Anda akan memerlukan atribut berbeda untuk bentuk berbeda bukan? lebar dan tinggi akan cukup untuk persegi panjang saja...   -  person Eternal Noob    schedule 20.12.2010
comment
Sebelum kita menyelidiki solusi untuk masalah ini. Ada lagi berdasarkan informasi yang Anda berikan. Mekanisme apa yang akan Anda terapkan untuk menentukan jenis bentuk yang Anda hadapi? Jika mereka hanya melewati koordinat seperti (Titik[] misalnya) maka Anda akan mengalami mimpi buruk dalam menentukan bentuknya.   -  person Matthew Cox    schedule 20.12.2010
comment
tetapi saya juga memerlukan titik awal x dan y   -  person    schedule 20.12.2010
comment
saya harus melakukannya dengan for loop kan?   -  person    schedule 20.12.2010
comment
Apakah ada cara lain yang bisa dilakukan??   -  person    schedule 20.12.2010
comment
Ini berbau pekerjaan rumah jadi jika ya, harap beri tag dengan tepat. Masalah yang harus dipecahkan: Ciptakan mekanisme untuk mengetahui jenis bentuk yang Anda tangani. Solusi yang baik juga akan menyelesaikan masalah penerusan atribut. Mulailah dengan kelas bentuk dasar dan kemudian lihat perluasan melalui komposisi atau pewarisan jika diperlukan. Setelah Anda melakukan ini untuk semua bentuk Anda. Maka Anda siap untuk pertanyaan awal tentang cara merendernya menggunakan tanda bintang.   -  person Matthew Cox    schedule 20.12.2010
comment
Tulis program yang akan menggambar di layar berdasarkan parameter. Program ini akan memiliki 5 pilihan a. Akan menerima koordinat untuk tipe bentuk berikut i. Persegi Panjang yaitu Persegi Panjang=100,200,50,50 dengan x,y,lebar,tinggi ii. Segitiga yaitu Segitiga=100,200,50,50,60,60 sebagai x,y,x1,y1,x2,y2 iii. Persegi yaitu Persegi=100,200,50 sebagai x,y,panjang iv. Pentagon yaitu Pentagon=100,200,50,50,60,60 sebagai x,y,x1,y1,x2,y2,x3,y3,x4,y4 b. KELUAR   -  person    schedule 20.12.2010
comment
mungkin merupakan koordinat titik asal persegi panjang tersebut   -  person Aravind Yarram    schedule 21.12.2010
comment
Tolong bisakah Anda menjelaskan pertanyaan Anda dengan lebih baik sehingga kami dapat membantu Anda.   -  person moinudin    schedule 21.12.2010
comment
Mohon jangan menanyakan pertanyaan ini lagi hanya karena Anda tidak puas dengan jawaban yang diberikan. Anda dapat mengedit pertanyaan Anda untuk memperjelasnya. Anda juga bisa menawarkan hadiah.   -  person    schedule 22.12.2010


Jawaban (5)


Saya rasa tutorial ini sangat berguna bagi Anda: http://download.Oracle.com/javase/tutorial/2d/geometry/primitives.html

person AlexR    schedule 20.12.2010
comment
terima kasih Alex tetapi saya tidak akan menggunakan GUI saya hanya akan menggambar bentuk dengan loop for. - person ; 20.12.2010

Apa itu 'menggambar dengan bintang'? Jika ini adalah mode teks dengan font monospace, Anda harus mencetaknya dalam garis bintang horizontal, dengan menghitung panjang yang tepat. Untuk persegi panjang caranya mudah, untuk segitiga agak kurang mudah, segi lima hanyalah gabungan dari persegi panjang dan beberapa segitiga. Lihat Algoritme Bresenham untuk mendapatkan inspirasi.

Perhatikan juga bahwa resolusi mode teks sangat buruk; jendela terminal standar hanya memiliki lebar 80 karakter, dan Anda hampir tidak dapat memilikinya jauh lebih lebar daripada katakanlah 200-300 karakter, jadi pembulatan yang benar itu penting.

person 9000    schedule 20.12.2010
comment
pentagon tidak terlalu sulit untuk dipecah menjadi beberapa bagian yang mudah: !4 segitiga dan sebuah persegi panjang. - person 9000; 20.12.2010

Jika hanya berbentuk persegi panjang, memasukkan yang berikut ini ke dalam metode pengecatan Anda akan berhasil...

int xIncrement = (int)g.getFont().getStringBounds("*", null).getWidth();  
int yIncrement = (int)g.getFont().getStringBounds("*", null).getHeight(); 
for(int i = y; i < y + height; i += xIncrement)  
    for(int j = x; j < x + width; j += yIncrement)
        g.drawString("*", j, i);  

Untuk segitiga dan bentuk lainnya, hal ini sedikit lebih sulit, namun Anda dapat mengetahui gradien garis yang memisahkan titik-titik, sehingga mendapatkan x awal untuk setiap garis.

Secara umum, cobalah untuk menghindari 'gambar bintang'...

person hauntsaninja    schedule 20.12.2010

Kecuali jika Anda mengacu pada GUI, koordinat Y dapat berupa jumlah garis yang harus Anda 'lewati' dan koordinat x menyerupai jumlah spasi yang telah Anda masukkan pada baris tersebut.

Jadi pada dasarnya x = 2 dan y = 3 berarti Anda harus turun 3 garis dan berpindah 2 spasi ke kanan.

person npinti    schedule 21.12.2010

Di bawah ini dari javadoc

x - koordinat x baru untuk pojok kiri atas Persegi Panjang ini y - koordinat y baru untuk pojok kiri atas Persegi Panjang ini

person Aravind Yarram    schedule 21.12.2010