C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

立体視のソフト 未完成


(過去ログ 104 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■62384 / inTopicNo.1)  立体視のソフト 未完成
  
□投稿者/ 初心者A (3回)-(2011/10/06(Thu) 05:42:31)

分類:[Java] 

javaで立体視のソフトを作成中。文法的なエラーは無いのですが、全然表示しない。デバッグをしたが、何故か、途中でEventDispachThreadへ、飛んでいってしまう。
もう、手に負えない状況です。どなたか、助けてください。マウスクリックすると、色の情報は表示されますが、目的の立体視は、完成の目処が立っていません。
下記に、ソフトを記します。


  import java.applet.*;
  import java.awt.*;
import java.awt.image.*;
  public class pyramid2j extends Applet
{
int cn;
int pc;
Image image;
Graphics graphics;
Image image2;
Graphics g2;

int XMAX = 399;
int YMAX = 399;
int HABA=60;
int MITUDO = 25;
int RITTAIDO = 2;
int TAKASA[]=new int[XMAX];
String DOT[]=new String[XMAX];

int X;
int Y;
int cns[]=new int[400*400];

public void paint(Graphics g) {
if (image == null) image = createImage(400,400);
if (graphics == null) graphics = image.getGraphics();

Color mycolor[]={Color.black,Color.blue,Color.cyan,Color.darkGray,Color.gray,
Color.green,Color.lightGray,Color.magenta,Color.orange,Color.pink,Color.red,
Color.white,Color.yellow};
paintsikaku();
g.drawImage(image,0,0,this);

g.drawString("pc="+pc,150,200);
g.drawString("cn="+cn,150,210);


int pixels[] = new int[400 * 400];
PixelGrabber pg = new PixelGrabber( image,0,0,400,400, pixels, 0,400) ;
try {
pg.grabPixels() ;
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
int cns[]=new int[400*400];

for (int index=0;index<400*400+1;index++){
pc=pixels[index];
cn= mycolornumber(pc);
cns[index]=cn;
}

if (image2 == null) image2 = createImage(400,400);
if (g2 == null) g2 = image2.getGraphics();

for (Y = 0;Y<YMAX+1;YMAX++){
for (int i=0;i<XMAX+1;XMAX++){
DOT[i] = "";}
TAKASALOAD(Y);
for ( X = 0;X< XMAX+1;XMAX++){
int TAKASA1 = TAKASA[X] * RITTAIDO;
if( DOT[X] =="" ){
if ((int)(Math.random()* 100) < MITUDO){
DOT[X] ="11";}
else
{ DOT[X] =" 0";}

int numver=Integer.parseInt(DOT[X]);

g2.setColor(mycolor[numver]);
g2.fillRect(X,Y,1,1);
int TUGI = X + HABA - (TAKASA1 * RITTAIDO);
if( TUGI >= 0 & TUGI <= XMAX){
DOT[TUGI] = DOT[X];}
}
}
g.drawImage(image2,0,0,this);}
}

public void paintsikaku()
{
if (image == null) image = createImage(400,400);
if (graphics == null) graphics = image.getGraphics();

Color mycolor[]={Color.black,Color.blue,Color.cyan,Color.darkGray,Color.gray,
Color.green,Color.lightGray,Color.magenta,Color.orange,Color.pink,Color.red,
Color.white,Color.yellow};
int j=1;
for (int i=1;i<8;i++){
graphics.setColor(mycolor[i]);
graphics.fillRect(0+(i-j)*25,0+(i-j)*25,400-(i-j)*50,400-(i-j)*50);}
}
public int mycolornumber(int iro){
if (iro==-16777216) cn=0;
else if (iro==-16776961) cn=1;
else if (iro==-16711681) cn=2;
else if (iro==-12566464) cn=3;
else if (iro==-8355712) cn=4;
else if (iro==-16711936) cn=5;
else if (iro==-4144960) cn=6;
else if (iro==-65281) cn=7;
else if (iro==-14336) cn=8;
else if (iro==-20561) cn=9;
else if (iro==-65536) cn=10;
else if (iro==-1) cn=11;
else if (iro==-256) cn=12;
return cn;}

public void TAKASALOAD(int Y){
for (X=0;X<XMAX+1;X++){
int index=(Y-1)*400+X+1;
TAKASA[X]=cns[index];}
}
public boolean mouseDown(java.awt.Event evt,int x,int y)
{
int pixels[] = new int[400 * 400];
PixelGrabber pg = new PixelGrabber( image,0,0,400,400, pixels, 0,400) ;
try {
pg.grabPixels() ;
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}

int index=(y-1)*400+x+1;
pc=pixels[index];
cn=mycolornumber(pc);
repaint();
return true;
}

}


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -