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

Вниз

Drawing (вопрос общего характера)   Найти похожие ветки 

 
TButton ©   (2005-10-10 12:08) [0]

Есть у меня програмка
в некотором роде автоматизирующая процесс преобразования
данных полученых в результате геодезических изысканий
в наглядную форму
т.е. чертеж

програмка более-менее сносно ладит с принтером
(т.е. если правильно указать размер бумаги
получается правдоподобный масштабированый чертеж)


програмка имеет собственный формат для хранения рабочих чертежей
(т.е. можно забить часть данных сегодня,
сохраниться и продолжить завтра)

а вот с внешним обменным форматом напряг
почему?
во-первых я не очень знаком с векторными графическими форматами
(т.е. в принципе я могу сохранять версию для печать в БМП,
но это не совсем удовлетворяет моим требованиям
см. ниже)

во-вторых... потерял мысль
ладно может быть потом вспомню

необходимость внешнего обменного формата
возникла, в связи с тем, что принтера бывает не бывает

в связи с этим к обменному формату возникают следующие требования
* компактность (файл должен влезать на дискетку 1.38 Мб)
* доступность (т.е. чтоб можно было придти в ателье и отпечатать у них на компе)
* способность сохранять масштаб, т.е. если я хочу чтоб линия на чертеже была длинной два см она должна быть 2 см и на отпечатке сделаном на другой машине (на которой нет моей проги)

вот собственно и все.

если есть мысли и предложения по этому поводу
буду рад их услышать


 
GuAV ©   (2005-10-10 17:54) [1]

Можно использовать Enhanced Metafiles, в Delphi это TMetafile и TMetafileCanvas.

Оч. просто: создаёшь TMetafile, задаешь размер MMWidth/MMHeight (in 0.01 millimeter units), или
Width/Height (в пискелях), их соотношение Inch. Затем создаёшь TMetafileCanvas для этого метафайла, и рисуешь как на обычной канве, уничтожаешь TMetafileCanvas и сохраняешь TMetafile. Всё.


 
TButton ©   (2005-10-11 01:03) [2]

хм... попробуем.


 
GanibalLector ©   (2005-10-12 02:02) [3]

2 GuAV ©   (10.10.05 17:54) [1]
Да,создаем нужный размер ( MMWidth/MMHeight),а вот дальше прийдеться использовать,например  MoveTo или LineTo в TMetafileCanvas. А вот ему уже не скажешь нарисуй линию длинной 2см. Прийдется высчитывать... Муторно все это :(

З.Ы.Кстати,  GuAV, предположим создал я некое изображение при помощи  TMetafile и TMetafileCanvas.Предположим как и в [0] нужной мне длинны. А вот дальше я хочу вставить его например в TImage. Но не просто вставить,а уменьшить и вставить. Т.е. размеры TImage строго определены !!! Как пропорционально уменьшить изображение в  TMetafile ???


 
GuAV ©   (2005-10-12 02:28) [4]


> Прийдется высчитывать... Муторно все это :(

Ну а что делать.. зато общий подход к рисованию на чём угодно, те же gdi функции и соответсвтенно то же TCanvas..  на принтере тоже через TCanvas рисуют, нет ?


> Т.е. размеры TImage строго определены !!! Как
> пропорционально уменьшить изображение в  TMetafile ???

Image1.Sretch := True;
Image1.Proportional := True //(м.б. False по вкусу)
Image1.Picture.Metafile := MF; // на самом деле создаётся копия MF, исходный MF можно освобождать.



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

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

Наверх




Память: 0.45 MB
Время: 0.038 c
14-1129699679
Ega23
2005-10-19 09:27
2005.11.06
С днем рождения! 19 октября


2-1129204133
vok
2005-10-13 15:48
2005.11.06
Процедура открытия файла


1-1129286094
Sergey_R
2005-10-14 14:34
2005.11.06
Завершение потока


14-1129622362
WondeRu
2005-10-18 11:59
2005.11.06
Delphi 2006 - что ждете от новой IDE?


14-1129056541
Kerk
2005-10-11 22:49
2005.11.06
Поставил себе ярко красный wallpaper...





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