Главная страница
    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.084 c
2-1164534678
susergey
2006-11-26 12:51
2006.12.10
key code


2-1164350708
r9000
2006-11-24 09:45
2006.12.10
Перевод строки в дату.


15-1164123137
oldman
2006-11-21 18:32
2006.12.10
Назовите любое n-значное простое число...


6-1153286706
zhekacoder
2006-07-19 09:25
2006.12.10
IP всех компов в сети


2-1164276706
Fostr
2006-11-23 13:11
2006.12.10
Syntax Error (Missing operator) in Query expression





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский