![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Повернутый эллипс. [D5, 95/98]
Jimmy © (2006-11-26 15:54:00)Как в Delphi на MetaCanvas'е нарисовать эллипс, повернутый, например, на 45 градусов, но чтобы это был имеено эллипс, а не набор отрезочков? То есть чтобы после экспорта рисунка в wmf-файл, и после открытия этого файла например из CorelDraw последний воспринял бы объект как эллипс, а не как что-то другое.
Заранее спасибо.
MBo (2006-11-26 16:42:00) [1]еще один способ - рассчитать 4 кривых Безье для частей эллипса, произвести преобразование координат контрольных точек вручную, отрисовать кривые.
KilkennyCat (2006-11-26 16:36:00) [2]> [2] Джо © (26.11.06 16:27)
В военное время она там работает, вроде бы. Например, в арабских странах именно она заставит справа налево буковки писать... но, может, я и ошибаюсь :)
Джо (2006-11-26 16:27:00) [3]Да, требования к ОС — Windows NT 3.1 и выше. Windows 9x не поддерживает функции SetWorldTransform.
Джо (2006-11-26 16:26:00) [4]
var
Mf: TMetafile;
Mfc: TMetafileCanvas;
XForm: TXForm;
begin
Mf := TMetafile.Create;
try
Mfc := TMetafileCanvas.Create(Mf,0);
try
XForm.eM11 := 0.70710; // cos 45
XForm.eM12 := 0.70710; // sin 45
XForm.eM21 := -0.70710; // -sin 45
XForm.eM22 := 0.70710; // cos 45
XForm.eDx := 0.0; // x offset
XForm.eDy := 0.0; // y offset
SetWorldTransform(Mfc.Handle,XForm);
Mfc.Ellipse(50,60,150,200);
finally
Mfc.Free;
end;
Mf.SaveToFile('d:\ellipse.emf');
finally
Mf.Free
end;
end;
При открытии в Adobe Illustrator получается вполне себе эллипс, без всяких "черточек". CorelDraw нету, поэтому не знаю, что там будет :)