![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Повёрнутый элипс [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 просто можно определить координаты центра эллипса и от него начинать заливку. По-моему, так...