Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

Повернутый эллипс.   Найти похожие ветки 

 
Jimmy   (2006-11-26 15:54) [0]

Как в Delphi на MetaCanvas"е нарисовать эллипс, повернутый, например, на 45 градусов, но чтобы это был имеено эллипс, а не набор отрезочков? То есть чтобы после экспорта рисунка в wmf-файл, и после открытия этого файла например из CorelDraw последний воспринял бы объект как эллипс, а не как что-то другое.
Заранее спасибо.


 
Джо ©   (2006-11-26 16:26) [1]

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 нету, поэтому не знаю, что там будет :)


 
Джо ©   (2006-11-26 16:27) [2]

Да, требования к ОС — Windows NT 3.1 и выше. Windows 9x не поддерживает функции SetWorldTransform.


 
KilkennyCat ©   (2006-11-26 16:36) [3]

> [2] Джо ©   (26.11.06 16:27)

В военное время она там работает, вроде бы. Например, в арабских странах именно она заставит справа налево буковки писать... но, может, я и ошибаюсь :)


 
MBo ©   (2006-11-26 16:42) [4]

еще один способ - рассчитать 4 кривых Безье для частей эллипса, произвести преобразование координат контрольных точек вручную, отрисовать кривые.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.043 c
10-1126113296
kblc
2005-09-07 21:14
2006.12.10
inproc com-server


15-1163696766
ArtemESC
2006-11-16 20:06
2006.12.10
Зачем нужна теория вероятности?


1-1161812639
VeLeS
2006-10-26 01:43
2006.12.10
Как одновременно редактировать дату и время в TDatetime?


15-1164202060
Чапаев
2006-11-22 16:27
2006.12.10
В ДатаСете непонятность


15-1164196964
Rbn
2006-11-22 15:02
2006.12.10
MS SQL шифровать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский