Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

Непонятная особенность в работе кода   Найти похожие ветки 

 
Angakok ©   (2007-04-19 20:59) [0]

Имеется эллипс(круг), который ограничен прямоугольником EllipseRect. Требуется заполнить множество S точками, которые принадлежат этому кругу(лежат внутри). Для этого использую следующий код:
[code]

 TMyPoint = class
 public
   x: Integer;
   y: Integer;
   constructor Create(tX: Integer; tY: Integer);
 end;
 ...
 constructor TMyPoint.Create(tX: Integer; tY: Integer);
 begin
   x := tX;  y := tY;
 end;
 ...

 S: DSet;
 EllipseRect: TRect;
 j,k: Integer;
 Rgn: HRGN;
 ...

 Rgn := CreateEllipticRgnIndirect(EllipseRect);
 if Rgn <> 0 then
   try
     for j := EllipseRect.Top to EllipseRect.Bottom do
       for k := EllipseRect.Left to EllipseRect.Right do
         if PtInRegion(Rgn,j,k) then
               S.add([TMyPoint.Create(j,k)]);  

   finally
     DeleteObject(Rgn);
   end;
   
[/code]

Данный код работает верно, только тогда, когда EllipseRect.Top=EllipseRect.Left.
В чем прикол ???


 
Vovan #2   (2007-04-19 22:55) [1]

Может быть...


if PtInRegion(Rgn,k,j) then
              S.add([TMyPoint.Create(k,j)]);


???


 
Angakok ©   (2007-04-20 01:29) [2]


> Может быть...if PtInRegion(Rgn,k,j) then               
> S.add([TMyPoint.Create(k,j)]);???


Точняк !!!!!!!! Это ведь координаты !!!!!! Работает!!!!

Спасибо !!!!!!!!!!!!!!



Страницы: 1 вся ветка

Текущий архив: 2007.06.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
15-1179768328
VirEx
2007-05-21 21:25
2007.06.17
хронология событий будущего, помогите придумать


10-1133792435
LORN
2005-12-05 17:20
2007.06.17
сохранить из olecontainer в ексел


15-1179611606
Marser
2007-05-20 01:53
2007.06.17
Список изменений в версии Delphi 7 сравнительно с более старыми


15-1179784204
Германн
2007-05-22 01:50
2007.06.17
Спам на форуме


15-1180005025
Reactor
2007-05-24 15:10
2007.06.17
Обновление виндов