С Новым годом! Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/26: Рейтинг темы: голосов - 26, средняя оценка - 4.96
5 / 5 / 0
Регистрация: 14.05.2012
Сообщений: 141

Opengl scale

28.10.2012, 23:38. Показов 5595. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день форумчане!помогите разобраться как просиходит масштабирование дан куб со строной 30 нужно будет его увличить до 100 как это сделать ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2012, 23:38
Ответы с готовыми решениями:

Объясните разницу если менять местами Scale и Rotate
Почему в процедуре DrawTestObj если Scale написать раньше Rotate, то прямоугольник не повернется горизонтально(длинна сторона параллельна...

Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности
Я читал про opengl - для его инициализации нужно создавать windows - окно. Для linux видимо инициализация происходить по другому. как мне...

(2 главы перевода книги доступно) OpenGL Programming Guide, Version 4.3, 8th Edition - OpenGL
Продолжая тему с переводом книги https://www.cyberforum.ru/opengl/thread1551398.html Выкладываю для скачивания вторую переведенную главу...

12
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
29.10.2012, 00:34
Для этого существует функция glScalef. В твоем случае это будет: glScalef( 3.33f, 3.33f, 3.33f );
1
5 / 5 / 0
Регистрация: 14.05.2012
Сообщений: 141
29.10.2012, 00:52  [ТС]
ну про функцию я знал а не знал про коэфициенты как они ставятся?и если можно с примером
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
29.10.2012, 00:55
Пример делать лень, извини. А вот про коэффициенты скажу: если сторона = 30, а надо масштабировать до 100, то формула проста: 100 / 30.
0
5 / 5 / 0
Регистрация: 14.05.2012
Сообщений: 141
29.10.2012, 01:06  [ТС]
Ясно а если я создал тимер с интервалом в 10 мс и слотом updategl и мне нужно что бы допустим он увеличивался то есть если я ставлю glscale(3.3,3.3,3.3)то он просто выходит за экран а если ставлю
glscale(1.001,1.001,1.001) то он медленно нормально увеличивается и как мне сделать что бы он увел до 100 и потом уменьшался до 30
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
29.10.2012, 01:10
Это решается просто. Возьми масштабирование и отрисовку в блок:
C
1
2
3
4
5
6
7
glPushMatrix();
...
масштабирование
...
отрисовка
...
glPopMatrix();
0
5 / 5 / 0
Регистрация: 14.05.2012
Сообщений: 141
29.10.2012, 01:12  [ТС]
делал не получалось
0
angstrom
29.10.2012, 01:14
Заведи переменную:
Delphi
1
2
3
4
5
6
7
8
var
  Scale : GLfloat = 1;
...
  Scale := Scale + 0.01;
  if (Scale >= 33.3) or (Scale <= 1) then
    Scale := -Scale
 
  glScale(Scale, Scale, Scale);
5 / 5 / 0
Регистрация: 14.05.2012
Сообщений: 141
29.10.2012, 01:15  [ТС]
мне нужно что бы он не просто увеличивался а постепенно т.е 30->31->32->...->100 и обратно 100->99->98->..->30 что бы это было видно на экране

Добавлено через 19 секунд
окей щас попробую
0
angstrom
29.10.2012, 01:29
Вот так примерно получится (я немного ошибся ).
Вложения
Тип файла: rar sphere.rar (13.8 Кб, 41 просмотров)
5 / 5 / 0
Регистрация: 14.05.2012
Сообщений: 141
29.10.2012, 01:38  [ТС]
появилась новая проблема у меня внутри было вращение и щас оно стало криво врашаться
C++
1
2
3
4
5
6
7
8
9
10
 glPushMatrix();
        glTranslated(0,0,size/2);
        glRotatef(rotatet,1,1,0);
        glTranslated(0,0,-size/2);
          s += 0.01;
          if ((s >= sizespeed/30)  )
          {s-=s;}
          glScalef(s, s, s);
        kubs(0,30,0,30,0,30,1);
        glPopMatrix();
0
angstrom
29.10.2012, 01:44
Команду Scale поставь первой.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  GLfloat Scale = 1;
  GLfloat Offset = 0.01;
 
  glPushMatrix();
 
    Scale +:= Offset;
    if (Scale >= 3.3) || (Scale <= 1)
      Offset = -Offset;
    glScalef(Scale, Scale, Scale);
 
    glTranslated(0,0,size/2);
    glRotatef(rotatet,1,1,0);
    glTranslated(0,0,-size/2);
    kubs(0,30,0,30,0,30,1);
  glPopMatrix();
С синтаксисом я мог и напутать, С не мой язык.
5 / 5 / 0
Регистрация: 14.05.2012
Сообщений: 141
29.10.2012, 02:18  [ТС]
Спасибо за помощь=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2012, 02:18
Помогаю со студенческими работами здесь

Ошибки при подключение opengl, немного не связанные с opengl
#include &lt;windows.h&gt; #include &quot;stdafx.h&quot; #include &lt;gl/gl.h&gt; #include &lt;gl/glu.h&gt; #include &lt;stdio.h&gt; //#include &quot;TXLib.h&quot; ...

OpenGL - VS2008 Инициализация OpenGL (Glut)
Правильно ли я написал код для выведения 3d изображения на экран? Вот пару недель наверно искал метод - можно ли окно как то создать без...

Сильно отличаются OpenGL ES и OpenGL и как?
Сильно отличаются OpenGL ES и OpenGL и как?

OpenGL и OpenGL ES в чём разница функционала?
Здравствуйте! Чем отличается функционал OpenGL от OpenGL ES? Можно делать игры на pc используя OpenGL ES?

Не загружается текстура в OpenGL (OpenGL + Классы)
Здравствуйте! Пишу движок для игры. Первый прототип я сделал процедурно. Все работает как надо. Сейчас переписываю в классах....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru