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

Вход на сайт

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

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

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

Я код на C++ набрал сам. Строил кривую Безье, но "прилипал" к нулю. То есть я задаю точки далеко от нуля, а он строил из нуля, а потом только обходил предложенные точки. Потом я нашёл Ваш сайт и эту статью. Оказалось, что я забыл возвести t в...
просто я не так понял, здесь мы вращаем точки куба что вращает сам куб. Мне нужно вращать просто 3д объект , данный способ не подходит
Задавайте объект в мировых координатах. Вращайте его относительно мировой системы координат. А при отрисовке преобразуйте в экранные координаты. Посмотрите пример преобразования в экранные координаты.
Это вращение по мировым осям ? Если да то как сделать по осям объекта ?
Добрый вечер! Область прорисовки остается пустой. Чего-то не хватает. Объясните плз, чего? Рамиль.

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

Рейтинг@Mail.ru
Язык программирования: 
Java
Среда программирования: 
Processing

//массив объектов класса
myCircles[] arrCircles = new myCircles[200];
 
void setup() {
  //настраиваем окно и отображение объектов
  size(400, 400);
  smooth();
  noStroke();
  fill(255);
 
  //заполняем массив объектами и задаем им координаты, начиная с центра окна и двигаясь
  //дальше поспирали
  for(int i=0; i<arrCircles.length; i++) {
    float x = width/2 + cos(i/2.0) * i;
    float y = height/2 + sin(i/2.0) * i;
    arrCircles[i] = new myCircles(x, y, 0.05 + (i/1000.0) );
  }
}
 
void draw() {
  background(0, 0, 0);
 
  //отрисовываем каждый объект через функцию pulse()
  for(int i=0; i<arrCircles.length; i++) {
    arrCircles[i].pulse();
  }
}
 
//напишем класс, который будет создавать пульсирующие объекты-круги
class myCircles {
  //переменные, в которых будут храниться координаты
  float xCoord;
  float yCoord;
 
  //переменные в которых будет задаваться скорость пульсации
  float t;
  float speed;
 
  //конструктор
  myCircles(float tx, float ty, float tspeed) {
    xCoord = tx;
    yCoord = ty;
    t = 0;
    speed = tspeed;
  }
 
  //функция пульсации
  void pulse() {
    //конвертируем значение sin(t) из промежутка -1:1 в соответственное значение в промежутке
    //10:15
    float size = map(sin(t), -1, 1, 10, 15);
    //рисуем эллипсы
    ellipse(xCoord, yCoord, size, size);
    //сдвигаем его на значение переменной speed
    t = t + speed;
  }  
}

Прикрепленный файлРазмер
menshykov_demoscene_2.pde_.zip1012 байтов