IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Си, графика, компилятор Turbo C++
Тёмный Эльф
сообщение 8.03.2007 10:59
Сообщение #1


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Программа вырисовывает пиксели множество раз, так что в конце-концов должен зарисоваться весь экран.
Но несколько пикселей она пропускает, оставляя незакрашенными. В чем тут дело?
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define PATHTODRIVER "d:\\tc\\bgi\\"

void f1(int x1, int y1, int x2, int y2, int color)
{
 long a=0;
 long k=1024;
 long max, x, y;
 if(abs(x2-x1) > abs(y2-y1))
   {
     if(x1 > x2)
      { x=x2; y=y2; max=x1; }
       else
        { x=x1; y=y1; max=x2; }
          a=(k*(y2-y1))/(x2-x1); y*=k;
          while(abs(max-x))
        {
        x++; y+=a;
       putpixel(x, y/k, color);
   }
   }
 else
   {
     a=(k*(x2-x1))/(y2-y1);
      if(y1 > y2)
       { x=x2; y=y2; max=y1; }
         else
          { x=x1; y=y1; max=y2; }
          x*=k;
           while(abs(max-y))
            {
            y++; x+=a;
            putpixel(x/k, y, color);
            }
   }
}

void main (void)
{
 int gdriver = DETECT, gmode, errorcode;
 initgraph( &gdriver, &gmode, PATHTODRIVER);
 int i,j;
 int x0 = 0;
 int y0 = 480;
     for(int round=0; round<3; round++)
    {
    cleardevice();
    for(i=0,j=0; i<=640; i++) f1(x0, y0, i, j, 6);
    for( ;j<=480;j++) f1(x0, y0, i, j, 6);
    }
closegraph();
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 31.07.2025 4:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"