Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

Не работает, выводит это: Process terminated with status 4258096 (0 minute(s), 2 second(s)) при этом открывается консоль с тем же числом
А как можно добавить сюда глубину рекурсии, то есть сложность линии?
ошибка : пишет не удается открыть источник файл "SDL.h" Из за этой ошибки не удается запустить программу хотя я все сделал правильно , в результате код не работает : //подключим SDL и stdio #include #include //Некоторые константы нашего окна const...
Чет не работает, помогите, надо очень сильно
добрый день! при попытке компиляции выдает Source.obj : error LNK2001: неразрешенный внешний символ "__imp_glPointSize" 1>Source.obj : error LNK2001: неразрешенный внешний символ "__imp_glPopMatrix" 1>Source.obj : error LNK2001: неразрешенный...

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Среда программирования: 
Eclipce

import java.awt.*;
 
import javax.swing.*;
 
import java.awt.event.*;
import java.io.ObjectInputStream.GetField;
 
public class Window_ {
public static void main(String[] args) {
 
/*   Создание окна */
  JFrame w=new JFrame("Окно с изображением");
  w.setSize(600, 600);
  w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  w.setLayout(new BorderLayout(5,5));	
  final Canvas canv=new Canvas();
  w.add(canv);		
  w.setVisible(true);		
}
 
}
 
@SuppressWarnings("serial")
 
 
/* Класс, который будет рисовать элементы*/
class Canvas extends JComponent{ 
int arr[][];                  /* Яркость кружочков */
int sx=2;                   /* Ширина холста        */
int sy=2;                   /* Высота холста          */
int x=3;                     /*  Позиция мыши      */
int y=3;                     /*  Позиция мыши      */
int col[]={255,0,0};  /* Цвет кружочков      */
 
public Canvas() {
/* Объявление массива */
  arr=new int[35][];
  for(int i=0;i<35;i++)
    arr[i]=new int[35];
 
/*    Событие при изменении позиции мыши  
*    обновление её кооридинат в программе */		
  addMouseMotionListener(new MouseMotionListener() {
    @Override
    public void mouseMoved(MouseEvent e) {
      x=e.getX();
      y=e.getY();
    }
    @Override
    public void mouseDragged(MouseEvent e) {}
  });
  addMouseListener(new MouseListener() {
 
    @Override
    public void mouseReleased(MouseEvent e) {
 
    }
 
    @Override
 
/*                    Смена цветов при нажатии мыши */
    public void mousePressed(MouseEvent e) {
        if(col[0] ==255 && col[1]==0 &&col[2]==0){col[0]=255;col[1]=128;col[2]=0;}	
        else if(col[0] ==255 && col[1]==128 &&col[2]==0){col[0]=255;col[1]=255;col[2]=0;}
        else if(col[0] ==255 && col[1]==255 &&col[2]==0){col[0]=128;col[1]=255;col[2]=0;}
        else if(col[0] ==128 && col[1]==255 &&col[2]==0){col[0]=0;col[1]=255;col[2]=0;}
        else if(col[0] ==0 && col[1]==255 &&col[2]==0){col[0]=0;col[1]=255;col[2]=128;}
        else if(col[0] ==0 && col[1]==255 &&col[2]==128){col[0]=0;col[1]=255;col[2]=255;}
        else if(col[0] ==0 && col[1]==255 &&col[2]==255){col[0]=0;col[1]=128;col[2]=255;}
        else if(col[0] ==0 && col[1]==128 &&col[2]==255){col[0]=0;col[1]=0;col[2]=255;}
        else if(col[0] ==0 && col[1]==0 &&col[2]==255){col[0]=128;col[1]=0;col[2]=255;}
        else if(col[0] ==128 && col[1]==0 &&col[2]==255){col[0]=255;col[1]=0;col[2]=255;}
        else if(col[0] ==255 && col[1]==0 &&col[2]==255){col[0]=255;col[1]=0;col[2]=128;}
        else if(col[0] ==255 && col[1]==0 &&col[2]==128){col[0]=255;col[1]=0;col[2]=0;}
 
 
    }
 
    @Override
    public void mouseExited(MouseEvent e) {}
 
    @Override
    public void mouseEntered(MouseEvent e) {}
 
    @Override
    public void mouseClicked(MouseEvent e) {}
  });
}
 
/* Пересчитывание яркости кружочков */
void mapUpdate(){
  if(x<0 || y<0)return;
  /* Временный массив для записи изменений на экране*/
  int buf[][]=new int[arr.length][arr.length];
  int xp=(x*arr.length/sx)%arr.length,yp=(y*arr.length/sy)%arr.length; 
  arr[xp][yp]=256;
  for(int i=0;i<arr.length;i++)
    for(int j=0;j<arr.length;j++)
      for(int k=-1;k<=1;k++)
        for(int l=1;l>=-1;l--)
        if (arr[i][j]!=0 && !(k==l && k==0 ) 
           && i+k>=0 &&  j+l >=0 && i+k < arr.length &&  j+l < arr.length  )
            if(buf[i+k][j+l]<arr[i][j]/1.2)
 
            /* Изменения записываются во временный массив */
              if(Math.abs(j+k)!=1)buf[i+k][j+l]= (int) ((arr[i][j]/1.2 )%256);
              else buf[i+k][j+l]= (int) Math.abs((arr[i][j]/1.23));		
 
   /* Временный массив выгружается в основной */
  for(int i=0;i<arr.length;i++)
    for(int j=0;j<arr.length;j++)
      if(buf[i][j]>10)buf[i][j]/=1.3;
      else buf[i][j]=0;
  arr=buf;
 
 
}
 
//  Метод, перерисовывающий элемент внутри окна, при обновлении	
public void paintComponent(Graphics g){
 
  super.paintComponents(g);		
  Graphics2D g2d=(Graphics2D)g;
  g2d.setColor(Color.BLACK);
  sy=getHeight();
  sx=getWidth();
 
/*    Холст закрашивается чёрным цветом*/		
  g2d.fillRect(0, 0, sx, sy);
 
/*    Обновляются координаты кружочков*/
  mapUpdate();
 
/*   Выбранным цветом рисуются кружочки на экране*/
  for(int i=0;i<arr.length;i++)
    for(int j=0;j<arr[i].length;j++){
      g2d.setColor(new Color( col[0],col[1],col[2],arr[i][j]%256 )); 
      g2d.fillOval(i*sx/arr.length, j*sy/arr.length, sx/arr.length, sy/arr.length);
    }
/*   Вызывает обновление рисунка после завершения рисования*/
  super.repaint();
}	
}

Прикрепленный файлРазмер
moving_For_Mouse.zip5.24 кб