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

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

Повернутый эллипс. [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 нету, поэтому не знаю, что там будет :)


Наверх

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