Генерация точек кривой x^2+y^2=r^2 (окружности)


Добавил:DMT
Дата создания:4 декабря 2007, 2:14
Дата обновления:24 декабря 2007, 3:00
Просмотров:7215 последний позавчера, 3:13
Комментариев: 0
Код на C
  1. float x=0,y=100,delta=0,x0=200,y0=200,i;
  2. Form1->Canvas->MoveTo(x0+x,y0+y);
  3. for (i=0;i<=4;i++){
  4. y=100;x=0;delta=0;
  5. while(y>abs(x)){
  6. if(i==0) Form1->Canvas->Pixels[x0+x][y0+y]=clBlack;
  7. if(i==1) Form1->Canvas->Pixels[x0-x][y0-y]=clBlack;
  8. if(i==2) Form1->Canvas->Pixels[x0-x][y0+y]=clBlack;
  9. if(i==3) Form1->Canvas->Pixels[x0+x][y0-y]=clBlack;
  10. if (delta<0) delta+=(-x*2+1); else
  11. { delta+=(-x*2+1)+(-y*2+1);
  12. y--;
  13. }
  14. x--;
  15. }
  16. while(y>=0){
  17. if(i==0) Form1->Canvas->Pixels[x0+x][y0+y]=clBlack;
  18. if(i==1) Form1->Canvas->Pixels[x0-x][y0-y]=clBlack;
  19. if(i==2) Form1->Canvas->Pixels[x0-x][y0+y]=clBlack;
  20. if(i==3) Form1->Canvas->Pixels[x0+x][y0-y]=clBlack;
  21. if (delta>=0) delta+=(-y*2+1); else
  22. { delta+=(-x*2+1)+(-y*2+1);
  23. x--;
  24. }
  25. y--;
  26. }
  27. }
При использовании обязательна ссылка на http://DMTSoft.ru
up