Форум: "Media";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
ВнизКак нарисовать эллипс под произвольным углом Найти похожие ветки
← →
wardoc © (2005-06-04 12:46) [0]Доброго времени суток.
Уважаемые, подскажите плиз как нарисовать эллипс под произвольным углом.
← →
MBo © (2005-06-04 18:11) [1]В NT-системах (указана XP, так что, видимо, подойдет) - SetWorldTransform c матрицей поворота относительно центра эллипса
В Вин9X - аппроксимировать эллипс 4-мя кривыми Безье, провести аффинное преобразование поворота над их контрольными токами, отрисовать.
← →
programania © (2005-06-04 23:45) [2]
procedure TForm1.Button1Click(Sender: TObject);
const ugol=30; //угол поворота элипса в градусах
var
i,xx,yy,h,w,xc,yc:integer;
u,f,x,y:extended;
begin
w:=200; h:=100; //размеры элипса
xc:=clientWidth div 2; //центр
yc:=clientHeight div 2;
canvas.brush.color:=255;
f:=2*pi * ugol /360;
for i:=1 to 3600 do begin
u:=2*pi * i / 3600;
x:=w*sin(u{*3}); //убрать коментарии
y:=h*cos(u{*5}); //чтоб было покрасивее элипса
//поворот точки x,y вокруг xc,yc на угол f
xx:=trunc(x*cos(f) - y*sin(f))+xc;
yy:=trunc(x*sin(f) + y*cos(f))+yc;
canvas.fillRect(rect(xx,yy,xx+2,yy+2));
end;
end;
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.039 c