Форум программистов, компьютерный форум CyberForum.ru

Работа с графикой - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
10.04.2011, 23:52     Работа с графикой #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "graphics.h"
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main (void)
{
   int x,y,c,k,q,z,w,e,r,t,u,s,b,n;
   int driver= DETECT, mode=0;
   initgraph(&driver,&mode,"");
   while (getch()!= KEY_ESCAPE)
   {  
       for (int i=1;i<91;i++)
       {
          x=30;
          line(300,240,300,130-i);
          line(300,240,300,350+i);
          line(300,240,410+i,240);
          line(300,240,190-i,240);
          line(300,240,380+i,160-i);
          line(300,240,380+i,320+i);
          line(300,240,220-i,160-i);
          line(300,240,220-i,320+i);
          circle (300,240,x+i);
        circle (300,130-i,(x+i)/4);
          
          circle (300,350+i,(x+i)/4); 
          circle (410+i,240,(x+i)/4);
          circle (190-i,240,(x+i)/4);
          circle (380+i,160-i,(x+i)/4);
          circle (380+i,320+i,(x+i)/4); 
          circle (220-i,160-i,(x+i)/4); 
          circle (220-i,320+i,(x+i)/4); 
          sleep(30);
           setfillstyle(1,0);
          bar(0,0,640,480);
          q=130-i;
          w=350+i;
          t=380+i; 
          u=160-i;
          z=x+i;
          r=190-i; 
          e=410+i;
          s=320+i;
          c=220-i;
          b=130-i;
          n=350+i;
       
         
      } 
      for (int i=1;i<91;i++)
      {
           setfillstyle(1,0);
          bar(0,0,640,480);
          line(300,240,300,b+i);
          line(300,240,300,n-i);
          line(300,240,e-i,240);
          line(300,240,r+i,240);
          line(300,240,t-i,u+i);
          line(300,240,t-i,s-i);
          line(300,240,c+i,u+i);
          line(300,240,c+i,s-i);
          circle (300,240,120-i);
         сircle (300,q+i,(z-i)/4);
          circle (300,w-i,(z-i)/4); 
          circle (e-i,240,(z-i)/4);
          circle (r+i,240,(z-i)/4);
          circle (t-i,u+i,(z-i)/4);
          circle (t-i,s-i,(z-i)/4); 
          circle (c+i,u+i,(z-i)/4); 
          circle (c+i,s-i,(z-i)/4); 
         sleep(30);
         
      } 
   }                      
   closegraph ();                 
}

На этой программе снежинка увеличивается и уменьшается до нажатия клавиши Esc, всё вроде бы работает нормально, но снежинка моргает! (я затирал просто экран чтобы сделать анимацию), пробывал рисовать чёрные фигуры на место старых чтоб не моргала но там оч сложно пару дней парился в итоге увеличивалась норм а уменьшается криво. Вопрос заключается в том: как сделать так чтобы она не моргала?(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2011, 23:52     Работа с графикой
Посмотрите здесь:

C++ Работа с графикой
Работа с ГРАФИКОЙ C++
РАБОТА С ГРАФИКОЙ C++
C++ работа с графикой
C++ Работа с графикой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.04.2011, 23:57     Работа с графикой #2
Цитата Сообщение от Kapioner Посмотреть сообщение
как сделать так чтобы она не моргала?(
никак, в ВС3.1 вы никак от этого не избавитесь, разве что увеличить задержку или придумать мего сложный алгоритм перерисовки
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
10.04.2011, 23:59  [ТС]     Работа с графикой #3
Это типа рисовать а потом старое зарисовывать в чёрный? это ппц( я пытался)
morric
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 12
08.03.2012, 13:34     Работа с графикой #4
Делается это достаточно просто.Нужно сначала подготовить как минимум 2 кадра графической зоны в памяти , а мотом выводить эти кадры непосредственно на экран.
Yandex
Объявления
08.03.2012, 13:34     Работа с графикой
Ответ Создать тему
Опции темы

Текущее время: 20:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru