Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > как установить метрическую систему в С#?


Автор: Гость_кот 1.2.2005, 02:25
как перейти в метрическую систему, С#?

Автор: Domestic Cat 1.2.2005, 05:58
А поточнее?

Автор: Guest 1.2.2005, 06:09
для отрисовки графики в метрической системе координат (в долях mm, а не в пикселах, долях дюймов и т.п.) в С++ я устанавливаю значение, например SetMapMode( MM_LOMETRIC );
операция более чем стандартная, но пока в С# аналога не нашел.

Автор: Domestic Cat 1.2.2005, 07:18
Задаещь PageScale и указываешь
GraphicsUnit.Pixel
GraphicsUnit.Inch
GraphicsUnit.Millimeter
GraphicsUnit.Document == 1/300 inch
GraphicsUnit.Display == 1/72 inch
GraphicsUnit.World

Автор: Guest 1.2.2005, 09:33
что-то опять не то делаю:
Код
Graphics dcLeft  = panelLeft.CreateGraphics();          // рисую в panel
dcLeft.PageScale = (float)GraphicsUnit.Millimeter/1000; // устанавливаю масштаб = 1/1000 mm
dcLeft.PageUnit  = GraphicsUnit.Millimeter;             // выбираю систему измерения (mm)
dcLeft.TranslateTransform(1000, 2000);                  // начало координат
dcLeft.DrawLine(pen,0, 0, 20000, 0 );                   //  x = около 123mm?!



Автор: Domestic Cat 1.2.2005, 09:41
Попробуй убрать PageScale и работать только с PageUnit .
Да и зарегистрировался бы, а то неясно с кем вообще говорю...

Автор: -ser- 1.2.2005, 10:18
извини, зарегистрировался.
убрал PageScale, уже ближе, но вместо 80 рисует 83 мм, вместо 100 -> 104 мм. это не критически, но подозрительно, проверял разными линейками.
Еще пришлось соответственно толщину Рen-а делить на 10 ибо 1 в конструкторе в этом случае дает толщину около 2мм. И последнее, теперь во всех функциях отрисовки придется параметры делить на 1000 (у меня четкость 1/1000 mm). уверен, что есть метод, устанавливающий graphics в определенную шкалу. С этим разберемся. За то что есть, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)