Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Программирование графики
Перезагрузить страницу Запись координат в массив в реал тайм, Как записать координаты в массив
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Dark19 Dark19 вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.05.2011
По умолчанию Запись координат в массив в реал тайм, Как записать координаты в массив - 21.06.2011, 14:46

Возникла проблема записи координат от мышки в массив. Мне нужно чтобы координаты сохранялись в массиве и тут же отрисовывались после каждого события от мышки. Я решил сделать запись координат с помощью цикла for (
cpp Код:
for (int i=1;i<1000;i++)
                {
                    glVertex2f(x1,z);
                    glVertex2f(x2,z1);
                    glEnd();
            mas3[i-1]=x;
            mas4[i-1]=y;
            mas1[i-1]=x2;
            mas2[i-1]=z1;



                    glVertex2f(mas1[i-1],mas2[i-1]);
                    glVertex2f(mas3[i-1],mas4[i-1]);
                    glEnd();
                     
                     cout<<i<<endl;
                     
                }
), но i в нем тогда не растет по одному, а сразу же от 1 до 1000, пока я еще и не начал рисовать. Мне нужно сделать так чтобы i росло по 1 с каждой нарисованной линией и координаты сохранялись в массив по очереди и потом отрисовывались. Подскажите как можно сделать?

cpp Код:
#include <windows.h>
#include <iostream>
#include <glut.h>
using namespace std;
int const n=1000;
int i=1,m=0,j=0,k=0,p=1;
int x=0,b=0;
int x1,x2;
int y=0,c=0;
int z,z1;
int mas1[n],mas2[n],mas3[n],mas4[n];
bool down=false, l=false;
unsigned char kei;



void keyboard ( unsigned char key, int x, int y)
{
     switch (key)
          {

                case 'q':

                exit(0);

                break;
     }
}


      void reshape(int w, int h)
       {
            glViewport(0, 0, w, h);
     
            glMatrixMode(GL_PROJECTION);
            glLoadIdentity();

            gluOrtho2D(0, w, h, 0);
             
            glMatrixMode(GL_MODELVIEW);
            glLoadIdentity();
      }


void mouse(int button, int state, int ax, int ay)
{
    if (state == GLUT_DOWN)
    {
        down=true;
        l=true;
    }
    else
    {
        down=false;
        l=false;
    }
    x=ax;
    y=ay;
}
void motion(int ax, int ay)
{
    x1=x;
    z=y;

    if (l)
    {

        x2=ax;
        z1=ay;
    }
   
        if (!l)
    {
        x1=ax;
        z=ay;
    }
       
   
   
   
}

void Draw()
{
   
    glClearColor(0.0,0.0,0.0,0.0);                       //Цвет, в который очищается окно
        glClear (GL_COLOR_BUFFER_BIT);                        //Очищение
               
                glColor3f(1.0,0.0,0.0);  
       
           
                glBegin(GL_LINES);
                for (int i=1;i<1000;i++)
                {
                    glVertex2f(x1,z);
                    glVertex2f(x2,z1);
                    glEnd();
            mas3[i-1]=x;
            mas4[i-1]=y;
            mas1[i-1]=x2;
            mas2[i-1]=z1;



                    glVertex2f(mas1[i-1],mas2[i-1]);
                    glVertex2f(mas3[i-1],mas4[i-1]);
                    glEnd();
                     
                     cout<<i<<endl;
                     
                }  
                       
        glutSwapBuffers();

}


void timer(int=0)
{
    Draw();
    glutTimerFunc (1,timer,0);
   

}
void Initialize()
{
    glClearColor (0.0, 0.0, 0.0, 0.0);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity();
    glOrtho (0, 1280, 1024, 0, -1, 1);
       
   
}
int main(int iArgc,char** cppArgv)
{


       
                glutInit (&iArgc, cppArgv);
                glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
               
                glutInitWindowPosition (0, 0);
                glutCreateWindow ("GRAF");
                Initialize();
                glutFullScreen();
            glutReshapeFunc (reshape);
       
            glutKeyboardFunc(keyboard);
                glutMouseFunc(mouse);
                glutMotionFunc(motion);
                //glutPassiveMotionFunc(motion);
                glutDisplayFunc (Draw);
           


             
        timer();
           
                glutMainLoop ();

         
   
       
        cin.get();
        cin.get();
}
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись чисел из файла в массив ashtone9130 Visual C++ 1 17.12.2011 17:35
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 С/С++ 2 21.06.2011 23:03
Запись в массив данных 111 Delphi 1 18.01.2011 17:57
MPI чтение и запись в массив данных Chummy С/С++ 5 05.10.2010 00:01
Как записать файл в массив Олькина Visual C++ 3 15.03.2007 22:03
Как подсчитать количества массивов и записать их в новый массив Gerda Вопросы начинающих программистов 6 13.01.2006 20:52
Запись файла в массив ОКСА Visual C++ 2 12.10.2005 17:41
В заданный массив как записать файл Leonardo С/С++ 5 08.10.2005 18:09
Как записать из текстового файла массив данных Dude Вопросы начинающих программистов 2 29.01.2005 01:54
Как правильно записать массив в .txt в VFP Nikolay Вопросы начинающих программистов 0 16.11.2004 20:17
Как считать файл bmp по пикселям и пиксели записать в массив Abri Visual C++ 4 09.02.2004 15:49
Вывод и запись чисел в массив max[k] (max[1] Форсаж Вопросы начинающих программистов 4 25.06.2003 23:02



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов