Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Повёрнутый элипс [D4, D6, Win95/98, Win2k]


KAV ©   (2003-04-01 17:36:00) 

Привет всем. Я начинающиц дельфист, и процессе возникла такая проблемма: нужно нарисовать элипсы под разными углами т.е повёрнутые относителоьно центра, и еще не получается разобраться с FloodFill, т.к. эти элипсы должны быть разных цветов, и меняться в процесе выполнения программы.
Заранее благодарен.


MBo   (2003-04-01 17:54:00) [1]

P.S.
Более быстро и умно будет аппроксимировать эллипс 4-мя кривыми Безье, проводя над их контрольными точками аффинное преобразование поворота вокруг центральной точки


MBo   (2003-04-01 17:50:00) [2]

procedure TForm1.Button1Click(Sender: TObject);
var i,n:integer;
ang:integer;
sfi,cfi,alpha:double;
xa,ya:double;
x,y:integer;
a,b:integer;
x0,y0:integer;
begin
ang:=30;
x0:=200;
y0:=200;
a:=150;
b:=100;
n:=60;
sfi:=sin(degtorad(ang));
cfi:=cos(degtorad(ang));
for i:=0 to n do begin
alpha:=i*2*pi/n;
xa:=a*cos(alpha);
ya:=b*sin(alpha);
x:=round(x0+xa*cfi+ya*sfi);
y:=round(y0-xa*sfi+ya*cfi);
if i=0 then
canvas.moveto(x,y)
else
canvas.lineto(x,y);
end;


BOA_KAA   (2003-04-01 17:46:00) [3]

Насколько я помню курс математики эллипс, повернутый под углом имеет свое уравнение. Если смотреть с этой позиции, то удобнее использовать Polygon. Если Вы нашли другой способ рисования эллипса, то для использования FloodFill просто можно определить координаты центра эллипса и от него начинать заливку. По-моему, так...


Наверх

Титульная страница Поиск, карта сайта Написать письмо