Главная страница
    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.04 c
2-1129364731
Vital
2005-10-15 12:25
2005.11.06
не используя OnPaint


14-1129370355
Ксардас
2005-10-15 13:59
2005.11.06
Задачки по физике


14-1129617966
syte_ser78
2005-10-18 10:46
2005.11.06
помогите составить техзадание


1-1129276525
kull
2005-10-14 11:55
2005.11.06
Можно ли обращаться к ClassName в except...end


14-1129191575
SPeller
2005-10-13 12:19
2005.11.06
Про квадратные велосипеды





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