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

Вход на сайт

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

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

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

Сейчас проверила нашла причину не запускания // Создание контекста воспроизведения OpenGL и привязка его к панели на форме OpenGLControl1:=TOpenGLControl.Create(Self); with OpenGLControl1 do begin Name:='OpenGLControl1'; //вот тут...
Ну..кажется что то пошло не так http://pp.usera...
Комментарии на английском переведите на русский. Дополните код комментариями, чтоб было понятно как работает алгоритм
Пример, к которому вы оставили комментарий строит именно то самое изображение на языке с#, которое вам необходимо. Отличается только цветовая палитра.

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

Рейтинг@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();
			}
 
}