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

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

Построения
на плоскости (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 Яндекс.Метрика
Язык программирования: 
Java
Среда программирования: 
IntelliJ IDEA 2017.3.4

package sample;
 
import java.util.Random;
 
import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
 
public class Main extends Application {
 
    private static final int SPARKS = 1000; //количество искр
 
 
    private final Rectangle[] nodes = new Rectangle[SPARKS]; //хранит искры
    private final double[] angles = new double[SPARKS]; // хранит углы по которым они летят
    private final long[] start = new long[SPARKS]; // хранит частоту с которой вылетают искры
 
 
    private final Random random = new Random();
 
 
    @Override
    public void start(final Stage primaryStage) {
 
        for (int i = 0; i < SPARKS; i++) {
 
            Color[] colors = new Color[] { Color.GREEN, Color.YELLOW}; // цвета
            Color randomColor = colors[new Random().nextInt(2)]; // случайный выбор из двух цветов
 
            nodes[i] = new Rectangle(4, 2, randomColor); // присваиваем каждому элементу массива фигуру
            angles[i] = 2.0 * Math.PI * random.nextDouble(); // присваиваем каждому элементу массива угол
            start[i] = random.nextInt(2000000000); // присваиваем каждому элементу массива частоту
        }
 
        // окно
        final Scene scene = new Scene(new Group(nodes), 400, 400, Color.BLACK);
        primaryStage.setScene(scene);
        primaryStage.show();
        primaryStage.setResizable(false);
 
        // анимация
        new AnimationTimer() {
            @Override
            public void handle(long now) {
                final double width = 0.5 * primaryStage.getWidth(); // определяем точку из которой вылетают искры
                final double height = 0.5 * primaryStage.getHeight();
                final double radius = Math.sqrt(1.7) * Math.max(width, height); // определяем радиус на который вылетают искры
 
                // анимация для каждой фигуры
                for (int i = 0; i < SPARKS; i++) {
 
                    final Node node = nodes[i];
 
                    final double angle = angles[i];
                    final long t = (now - start[i]) % 2000000000;
                    // разброс искр
                    final double d = t * radius / 2000000000.0;
                    // перемещает искры
                    node.setTranslateX(Math.cos(angle) * d + width);
                    node.setTranslateY(Math.sin(angle) * d + height);
                }
 
            }
        }.start();
    }
 
    public static void main(String[] args) {
        launch(args);
    }
 
}

Прикрепленный файлРазмер
Sparks.zip14.48 кб