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

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

Построения
на плоскости (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 Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
Eclipse

В данном примере строится многоугольник по количеству сторон n, координатам центра многоугольника и расстоянию R от центра многоугольника до его стороны. Все значения задаются переменными в самом коде программы.

Код программы: 

import java.awt.*;
 
import javax.swing.*;
import java.lang.Math;
 
public class nygolnic extends JPanel {
	static int n = 4; //кол-во граней
	static int R = 50; //радиус
	static int X = 250, Y = 250;//координаты центра
	static int x[] = new int [n];//координаты точек
	static int y[] = new int [n];//
	static int x1, y1, x2, y2;
	static int j = n;
 
	public nygolnic(){
 
		JFrame jf = new JFrame();
		jf.setSize(500, 500);
		jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);		
		jf.setLocationRelativeTo(null);
 
		jf.getContentPane().add(this);	
 
		jf.setVisible(true);		
		jf.repaint();
 
	}
	public void paintComponent(Graphics g){
		super.paintComponent(g);	
		double a, b,  z = 0 ;  int i = 0; double angle = 360.0 / n ; 
		//цикл создающий массив из точек
		while(i < n){
			a = Math.cos( z/180*Math.PI);
			b = Math.sin( z/180*Math.PI);
			x[i] = X + (int)(Math.round(a) * R);
			y[i] = Y - (int)(Math.round(b) * R);			
			z = z + angle;
			i++;
		}
		System.out.println();
 
		int x1, x2, y1, y2;
 
		int j = n-1;		//цикл передающий координаты для прорисовки грани
		while(j >= 0){
 
			if(j > 0){
				x1 = x[j]; x2 = x[j-1];
				y1 = y[j]; y2 = y[j-1];
				g.drawLine(x1, y1, x2, y2);			
				j--;
			}
			else{
				x1 = x[j]; x2 = x[n-1];
				y1 = y[j]; y2 = y[n-1];
				g.drawLine(x1, y1, x2, y2);
				j--;
 
			}
 
		}
 
	}
 
	public static void main(String[] args) throws Exception{	
		nygolnic NY = new nygolnic();
			NY.repaint();
			}
 
}