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

Opengl scale

28.10.2012, 23:38. Показов 5572. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru