Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.07;
Скачать: CL | DM;

Вниз

Изменение прорисовки OpenGL c помощью Radiobutton или др инстр..   Найти похожие ветки 

 
Vladimir1984 ©   (2006-12-19 20:49) [0]

Как измененить прорисовку по OpenGL с GL_TRIANGLES на GL_LINES и на GL_POINTS c помощью Radiobutton или др инстр..


 
trubin ©   (2006-12-19 21:30) [1]

Не совсем понятен вопрос. Наверно как обычно, что-то типа:

if RadioButton1.Checked then
...
else
...;


 
Vladimir1984 ©   (2006-12-19 21:37) [2]


begin

            glColor3f(1,1,1);
            glBegin(GL_TRIANGLES);

            for j:=2 to w-2 do
              for k:=2 to h-2 do
              begin
                glColor3f(cx[j,k,1],cx[j,k,2],cx[j,k,3]);
                glVertex3f(j-dw,vx[j,k]-dv,k-dh); //здесь задаются координаты вершин: X и Z вычисляется, Y берется из массива

                glColor3f(cx[j+1,k,1],cx[j+1,k,2],cx[j+1,k,3]);
                glVertex3f(j-dw+1,vx[j+1,k]-dv,k-dh);//здесь задаются координаты вершин: X и Z вычисляется, Y берется из массива

                glColor3f(cx[j+1,k+1,1],cx[j+1,k+1,2],cx[j+1,k+1,3]);
                glVertex3f(j-dw+1,vx[j+1,k+1]-dv,k-dh+1); //здесь задаются координаты вершин: X и Z вычисляется, Y берется из массива
              end;
            for j:=2 to w-2 do
              for k:=2 to h-2 do
              begin
                glColor3f(cx[j,k,1],cx[j,k,2],cx[j,k,3]);
                glVertex3f(j-dw,vx[j,k]-dv,k-dh);

                glColor3f(cx[j,k+1,1],cx[j,k+1,2],cx[j,k+1,3]);
                glVertex3f(j-dw,vx[j,k+1]-dv,k-dh+1);

                glColor3f(cx[j+1,k+1,1],cx[j+1,k+1,2],cx[j+1,k+1,3]);
                glVertex3f(j-dw+1,vx[j+1,k+1]-dv,k-dh+1);
              end;
            glEnd;
            glDisable(GL_COLOR_MATERIAL);
          end;
       end;

Вот в этом коде..


 
Zeqfreed ©   (2006-12-19 22:10) [3]

const
 modes : array[1..3] of DWORD = (GL_TRIANGLES, GL_LINES, GL_POINTS);

...

glBegin(modes[Integer(RadioButton1.Checked)*1 + Integer(RadioButton2.Checked)*2 + Integer(RadioButton3.Checked)*3]);

...


Если я не ошибаюсь, то true должно быть 1, а false 0, но рассчитывать на это особо не стоит :) Ещё не помню какого типа константы в GL, но вроде должны быть совместимы с DWORD :)


 
Vladimir1984 ©   (2006-12-19 22:41) [4]

спасибо заработало =)


 
Zeqfreed ©   (2006-12-19 23:04) [5]

Должен сказать, что это красивое, так скажем, решение, но в реальных задачах я бы его не стал использовать, т.к. немасштабируемо, неуниверсально, использует недокументированное (вроде?) поведение компилятора.


 
Vladimir1984 ©   (2006-12-19 23:17) [6]

работает, а это главное=)



Страницы: 1 вся ветка

Текущий архив: 2007.01.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
2-1166439040
root
2006-12-18 13:50
2007.01.07
чтение файла помогите


4-1156109270
Вуук
2006-08-21 01:27
2007.01.07
Как отловить нажатия клавиш для всех процессов!?


15-1166092041
Vlad Oshin
2006-12-14 13:27
2007.01.07
MySql и/или MSSQL Логи. Как делать?


2-1166267115
minter
2006-12-16 14:05
2007.01.07
Праблема!


2-1166436237
cvg
2006-12-18 13:03
2007.01.07
Есть ли в Delphi что-то типа is_number?