javaのアプレットについてですが、下のURLの16角のダイヤモンド図形で、
URLのソースのように、繰り返し描画せず、色もつけないで、単純に16個の頂点を持つ
ダイヤモンド図形を描画する場合、URLのソースをどういじればよいのでしょうか。
ソースコードをそぎ落として、16頂点のダイヤモンド図形を単純に描画するコードを
ぬきとっていただけませんでしょうか。
よろしくお願いします。
http://www.piclist.com/images/www/hobby_elec/jav …
No.2ベストアンサー
- 回答日時:
//繰り返さないならアプレットでなくてもいいのでmainにしてあります。
//結果はc:\test.jpgにできます。
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import java.lang.Math;
public class Test9 {
public static void main(String[] args) {
int r=100;
int n = 16;
int x, y, x1, y1;
try {
BufferedImage image=new BufferedImage(r*2+10,r*2+10,BufferedImage.TYPE_INT_RGB);
Graphics2D g2d=image.createGraphics();
g2d.setBackground(Color.WHITE);
g2d.clearRect(0,0,r*2+10,r*2+10);
g2d.setColor(Color.BLACK);
x1 = r;
y1 = 0;
for ( double i = 360.0 / n; i <= 360.0; i += 360.0 / n ) {
x = (int) ( r * Math.cos( i * Math.PI / 180 ) );
y = (int) ( r * Math.sin( i * Math.PI / 180 ) );
g2d.drawLine( x1 + r + 5, y1 * (-1) + r + 5, x + r + 5, y * (-1) + r + 5 );
x1 = x; y1 = y;
}
ImageIO.write(image, "JPEG", new File("c:\\test.jpg"));
} catch(Exception e) { e.printStackTrace(); }
}
}
この回答への補足
回答ありがとうございます!
このプログラムでは、正n角形をかくだけで、各頂点から各頂点に向けた線分がつくれないのですが、その点について教えていただくことはできないでしょうか
No.1
- 回答日時:
そのプログラム、コメントも丁寧に書いてあるので、読めばわかると思うのですが。
例えば、線の色なら
color = new Color( red,green,blue ); /* 線の色設定 */
とありますよね?
red,green,blueを調べると
red = (int) ( Math.random()*256 ); /* 赤色成分ランダム生成 */
green = (int) ( Math.random()*256); /* 緑色成分ランダム生成 */
blue = (int) (Math.random()*256); /* 青色成分ランダム生成 */
と、ランダムに決めているってありますよね?これを固定値にすれば、決めた色になるとわかりませんか?
例えば、繰り返し。
繰り返すには、ループ構造を使います。このプログラムではforとwhileが使われています。
ループの外にあれば、繰り返し実行されません。
このプログラムのループは、線の座標を計算するためのものと、描画を繰り返すためのものがあります。
描画を繰り返すループから、描画部分を外に出せば、1回した描画しなくなるはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 ワード。頂点の編集。 4 2022/09/28 14:14
- Illustrator(イラストレーター) 「頂点で線分を伸ばす」作業がうまく行かない。 1 2022/09/09 10:19
- デザイン オフィス系のソフトのフリーハンドできちんと描画するには 1 2022/11/11 18:45
- 芸術学 美術、芸術が得意な方に質問です。この問題の正解を教えてください。 設問1フォーヴィスムの特徴に当ては 3 2022/10/27 13:24
- 美術・アート ペンタブとオフィス系ソフト 1 2022/10/08 19:27
- ノートパソコン Open Office.orgのDrawで描いた図形の塗りつぶしをしたい 1 2022/03/22 19:24
- Excel(エクセル) Excel VBAのことでお聞きしたいことがあり、ご教授お願いします。 下記の3つの図形があり、この 3 2022/08/08 17:57
- その他(教育・科学・学問) グーグルスプレッドシートの図形描画のバグ?「保存して終了」ボタンが突然消失 2 2022/04/05 13:11
- PowerPoint(パワーポイント) 2016EXCEL→2016PowerPointにコピペすると図形がゆがみます 5 2022/03/31 11:44
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
描画処理が実行されない
-
GDI+で描画した画像を消去する...
-
SwingのpaintComponent(...
-
BMP画像を画像処理して連続に表...
-
canvasで表示されてる画像を1...
-
Java 15パズルを作ったのですが...
-
JavaScriptで直線を描画したい
-
Java、jPanelに描画する
-
VB.NETのSendMessageを教えてく...
-
エクセルVBAで、条件に一致する...
-
3年間同じクラスになる確率
-
インスタンス参照でアクセスで...
-
c++,ある関数のクラスから別の...
-
ワイルドカード<?>と型パラメー...
-
「天声人語」をインターネット...
-
DataGridViewでセルクリックイ...
-
string formatについて
-
クラス間でのデータ参照
-
変数の参照でエラーが出てしま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
VB.NETのSendMessageを教えてく...
-
JAVAでの背景画像表示
-
C# DataGridView のCellPaintin...
-
重なった要素上でのイベントで...
-
C# リストビューの特定のセルの...
-
Androidで画像の中で指定した範...
-
画面のちらつきの原因が知りた...
-
複数画像表示切り替え Visual c++
-
Labelコントロールの背景をグラ...
-
VS Treeview のデザイン変更
-
描画処理が実行されない
-
GDI+で描画した画像を消去する...
-
このプログラミングをどう組み...
-
canvasで表示されてる画像を1...
-
ドラッグして矩形を描くには
-
getGraphics()の意味を教えて...
-
Canvas等の図形を移動する時,直...
-
DirectXのスプライト機能で3D回転
-
Exception occurred during eve...
おすすめ情報