Вывести в левом верхнем углу экрана произвольное изображение используя BC 3.1


Добавил:DMT
Дата создания:4 декабря 2007, 0:07
Дата обновления:30 декабря 2007, 0:48
Просмотров:8022 последний 5 декабря, 10:12
Комментариев: 0

Вывести в левом верхнем углу экрана произвольное изображение (например, изображение российского флага) размером 120 на 60 пикселов . Затем в правом нижнем углу экрана вывести увеличенное изображение размером 240 на 120 пикселов .

В задаче сначала строится некоторое прямоугольное изображение в левом верхнем углу экрана, например, изображение российского флага. Затем организуется два вложенных цикла, один по переменной x , другой по переменной y . В цикле с помощью функции getpixel считывается цвет очередной точки верхнего изображения и в нижнем изображении выводится закрашенный квадрат этого цвета.

Код на C
  1.  
  2. #include <graphics.h>
  3. #include <math.h>
  4. #include <conio.h>
  5. #include <stdio.h>
  6.  
  7. void flag(void)
  8. {
  9. for (int i=0;i<=60;i++){
  10. setcolor(RED);
  11. rectangle(i,0,120-i,20);
  12. setcolor(BLUE);
  13. rectangle(i,20,120-i,40);
  14. setcolor(WHITE);
  15. rectangle(i,40,120-i,60);
  16. }
  17. }
  18.  
  19. void zoom(void)
  20. {
  21. int c=0,k,l;
  22. for (int i=0;i<=120*2;i+=2){
  23. for (int j=0;j<=60;j+=2){
  24. c=getpixel(i,j);
  25. setcolor(c);
  26. k=i*2+getmaxx()-240;l=j*2+getmaxy()-120;
  27. rectangle(k+1,l+1,k+1,l+1);
  28. rectangle(k,l,k+2,l+2);
  29. rectangle(k,l,k+3,l+3);
  30. }
  31. }
  32. }
  33.  
  34. void main()
  35. {
  36. int graphdriver=DETECT, graphmode;
  37. initgraph(&graphdriver,&graphmode,"");
  38. flag();zoom();
  39. getch();
  40. }
  41.  
При использовании обязательна ссылка на http://DMTSoft.ru
up