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

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

Построения
на плоскости (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 15.0.4

package me.grafika.barbanyagra;
 
import javafx.animation.Animation;
import javafx.animation.PathTransition;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.BlendMode;
import javafx.scene.paint.*;
import javafx.scene.shape.Circle;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.stage.Stage;
import javafx.util.Duration;
 
public class Lights extends Application {
 
    public static void main(String[] args) {
        launch(args);
    }
 
    @Override
    public void start(Stage primaryStage) throws Exception {
        Group root = new Group(); // корневой элемент сцены
        primaryStage.setTitle("Lights"); // заголовок окна
        primaryStage.setScene(new Scene(root, 500, 500, Color.BLACK));
        primaryStage.setResizable(false); // запрещаем изменять размер окна
 
        // цвета окружностей
        RadialGradient[] colors = {
                // радиальный градиент от непрозрачного до 70%-непрозрачного красного
                new RadialGradient(0, 0, 0.5, 0.5, 0.5, true, CycleMethod.NO_CYCLE,
                        new Stop(0, new Color(1, 0, 0, 1)),
                        new Stop(0.4, new Color(1, 0, 0, 0.96)),
                        new Stop(0.7, new Color(1, 0, 0, 0.86)),
                        new Stop(1, new Color(1, 0, 0, 0.7))),
 
                // радиальный градиент от непрозрачного до 70%-непрозрачного зеленого
                new RadialGradient(0, 0, 0.5, 0.5, 0.5, true, CycleMethod.NO_CYCLE,
                        new Stop(0, new Color(0, 1, 0, 1)),
                        new Stop(0.4, new Color(0, 1, 0, 0.96)),
                        new Stop(0.7, new Color(0, 1, 0, 0.86)),
                        new Stop(1, new Color(0, 1, 0, 0.7))),
 
                // радиальный градиент от непрозрачного до 70%-непрозрачного синего
                new RadialGradient(0, 0, 0.5, 0.5, 0.5, true, CycleMethod.NO_CYCLE,
                        new Stop(0, new Color(0, 0, 1, 1)),
                        new Stop(0.4, new Color(0, 0, 1, 0.96)),
                        new Stop(0.7, new Color(0, 0, 1, 0.86)),
                        new Stop(1, new Color(0, 0, 1, 0.7))),
        };
 
        Group circles = new Group(); // группа для кругов
        // устанавливаем режим смешение "сложение" (подробно о режимах смешения: <a href="https://en.wikipedia.org/wiki/Blend_modes" title="https://en.wikipedia.org/wiki/Blend_modes">https://en.wikipedia.org/wiki/Blend_modes</a>)
        circles.setBlendMode(BlendMode.ADD);
 
        PathTransition[] pts = new PathTransition[3]; // массив перемещений
        for (int i = 0; i < 3; i++) {
            Circle circle = new Circle(118, colors[i]); // создаем окружность
            circles.getChildren().add(circle); // добавляем ее в группу
            circle.setBlendMode(BlendMode.ADD); // устанавливаем режим смешение "сложение"
 
            PathTransition pt = new PathTransition(); // создаем анимацию-перемещение
            pt.setNode(circle); // добавляем в нее круг
            pt.setDuration(Duration.millis(1700)); // устанавливаем продолжительность движения
            pt.setPath(new Path(
                    new MoveTo(180, 250),
                    new LineTo(320, 250), // прямая линия
                    new LineTo(180, 250) // обратная прямая линия
            ));
            pt.setCycleCount(Animation.INDEFINITE); // указываем, что перемещение должно выполняться неограниченное число раз
 
            pts[i] = pt; // сохраняем перемещение
        }
 
        root.getChildren().add(circles); // добавляем круги в корневой элемент
        primaryStage.show(); // запускаем сцену
 
        // перематываем перемещения на 0t, 1/3t, 2/3t, чтобы центры кругов изначально находились в разных позициях
        for (int i = 0; i < 3; i++) {
            pts[i].jumpTo(pts[i].getDuration().multiply(i / 3.));
        }
 
        for (int i = 0; i < 3; i++) {
            pts[i].play(); // запускаем анимацию
        }
    }
}

Прикрепленный файлРазмер
Lights.zip35.25 кб