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

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

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

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

У меня проблема вот с этим: gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);. Вылезает ошибка: CS1061 "object" не содержит определения "GL_COLOR_BUFFER_BIT", и не удалось найти доступный метод расширения "GL_COLOR_BUFFER_BIT",...
Большое спасибо. Единственный код который прошел без каких либо ошибок. Ура!!!
Скажите пожалуйста, подскажите алгоритм по которому по заданным точкам можно определить тип многогранника, скажем это куб или прямоугольный параллелепипед. Нашел теорию по этим фигурам: https://www.mat... https://www.mat... Акцентировать внимание...
Всем у кого не работает. файл wizard.script Ещё одно упоминание Glut32 в строке "if (!VerifyLibFile(dir_nomacro_lib, _T("glut32"), _T("GLUT's"))) return false;" меняем на "if (!VerifyLibFile(dir_nomacro_lib, _T("freeglut"), _T("GLUT's"))) return...
Не получается, емаё

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

Рейтинг@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 кб