Страница: 1 | 2 |
Вопрос: Конвертирование между единицами измерения
Добавлено: 23.06.05 06:52
Автор вопроса: Diz | Web-сайт:
В бейсике исть стандартные функции для конвретирования между дюймами, мм, см, пикселями??? Если нет, то может у кого-то модуль есть.... или ещё чего?
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #1
Добавлено: 23.06.05 07:16
1 пиксел = Screen.TwipsPerPixelX твипов (обычно 15)
1 см = 10 мм
и насколько я помню, 1 дюйм = 1440 твипов.
Номер ответа: 2
Автор ответа:
Diz
Вопросов: 24
Ответов: 38
Web-сайт:
Профиль | | #2
Добавлено: 23.06.05 08:20
т.е. я правильно понял, что если мне надо перевести из мм в дюйм, мне надо мм перевести в пикселы, а затем пикселы умножить на (15 в твипы) и разделить на (1440) получу дюйм???
а сколько в мм пикселов?
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 23.06.05 09:40
Нисколько. Это аппаратно-зависимое отношение.
Номер ответа: 4
Автор ответа:
Diz
Вопросов: 24
Ответов: 38
Web-сайт:
Профиль | | #4
Добавлено: 23.06.05 09:55
проблема вот в чём. мне надо чтоб фотошоп проделывал кое какие вещи за меня. И надо, чоб я передавал ему размеры в мм. А он их воспринимает в дюймах. Вот я и хотел нужные мне мм переводить в дюймы...
Есть тут кто, кто работал с фотошопом и бейсиком
Номер ответа: 5
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #5
Добавлено: 23.06.05 11:16
Есть же стандартные методы ScaleX и ScaleY у PictureBox, формы и т.п. Если надо описалово:
ScaleX, ScaleY Methods
Converts the value for the width or height of a Form, PictureBox, or Printer from one of the ScaleMode property's unit of measure to another. Doesn't supportnamed arguments.
Syntax
object.ScaleX (width, fromscale, toscale)
object.ScaleY (height, fromscale, toscale)
The ScaleX and ScaleY method syntaxes have these parts:
Part Description
object Optional. Anobject expression that evaluates to an object in the Applies To list. If object is omitted, the Form object with thefocus is assumed to be object.
width Required. Specifies, for object, the number of units of measure to be converted.
height Required. Specifies, for object, the number of units of measure to be converted.
fromscale Optional. A constant or value specifying the coordinate system from which width or height of object is to be converted, as described in Settings. The possible values of fromscale are the same as for the ScaleMode property, plus the new value of HiMetric.
toscale Optional. A constant or value specifying the coordinate system to which width or height of object is to be converted, as described in Settings. The possible values of toscale are the same as for the ScaleMode property, plus the new value of HiMetric.
Settings
The settings for fromscale and toscale are:
Constant Value Description
vbUser 0 User-defined: indicates that the width or height of object is set to a custom value.
vbTwips 1 Twip (1440 twips per logical inch; 567 twips per logical centimeter).
vbPoints 2 Point (72 points per logical inch).
vbPixels 3 Pixel (smallest unit of monitor or printer resolution).
vbCharacters 4 Character (horizontal = 120 twips per unit; vertical = 240 twips per unit).
vbInches 5 Inch.
vbMillimeters 6 Millimeter.
vbCentimeters 7 Centimeter.
vbHimetric 8 HiMetric. If fromscale is omitted, HiMetric is assumed as the default.
vbContainerPosition 9 Determines control's position.
vbContainerSize 10 Determines control's size.
Remarks
The ScaleX and ScaleY methods take a value (width or height), with its unit of measure specified by fromscale, and convert it to the corresponding value for the unit of measure specified by toscale.
You can also use ScaleX and ScaleY with the PaintPicture method.
Номер ответа: 6
Автор ответа:
Diz
Вопросов: 24
Ответов: 38
Web-сайт:
Профиль | | #6
Добавлено: 23.06.05 11:45
дело в том, что я использую их не к picturebox,
Допустим, что мне надо создать документ в фотошопе с размерами 203 на 300 мм.
вот код:
appRef.Documents.Add(203, 305, 300, ""
но дело в том, что мне надо эти единицы передать в дюймах.
Что-то типа:
appRef.Documents.Add(ToInch(203), ToInch(305), 300, ""
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 23.06.05 14:16
Какая разница. Используй эти же методы формы. Форма то у тебя, надеюсь, есть?
Номер ответа: 8
Автор ответа:
Федор Власенко
Вопросов: 8
Ответов: 11
Web-сайт:
Профиль | | #8
Добавлено: 23.06.05 15:06
Что значит на эти-же методы?
Ведь, что-бы модифицировать меню надо получить его Hmenu/
Номер ответа: 9
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #9
Добавлено: 23.06.05 15:47
Кстати, всё можно выяснить в самом вб: поставь у формы ScaleMode дюймы и сделай ширину кнопки=1. потом переведи ScaleMode у форммы в пикселы и посмотри на ширину кнопки.
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 23.06.05 17:00
Походу не программерская задача. Пойщи таблицу переводов, а на ВБ составь что-то типа формул, это очень легко.
Номер ответа: 11
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #11
Добавлено: 23.06.05 17:17
Блин, ну я не пойму в чем тут проблема.
Dim myWidth As Long
myWidth = 1000
MsgBox myWidth & " Pixels=" & Me.ScaleX(myWidth, vbPixels, vbMillimeters) & " Millimeters"
Вот и все. Для других единиц аналогично. Чего тут париться?
Номер ответа: 12
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #12
Добавлено: 23.06.05 18:00
Ещё раз.
При разных разрешениях будут разные результаты.
Нельзя физические единицы сравнивать с логическими.
Номер ответа: 13
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #13
Добавлено: 23.06.05 23:12
Допустим, что мне надо создать документ в фотошопе с размерами 203 на 300 мм.
......
но дело в том, что мне надо эти единицы передать в дюймах
......
Вообще-то и миллиметры, и дюймы - это физические единицы, и связаны простым соотношением:
1 дюйм = 25,48 мм (если мне память не изменяет)
В чём тогда проблема с переводом?!
Номер ответа: 14
Автор ответа:
Diz
Вопросов: 24
Ответов: 38
Web-сайт:
Профиль | | #14
Добавлено: 24.06.05 07:00
написать функции для перевода не сложно, просто я не знаю констант (чему равны дюймы и т.д.) вот и решил спросить. И на всякий случай очистить совесть, может в бейсике стандартные функции для перевода есть, а я буду велосипед изобретать... вот.
P.S. а вообще отзовитесь кто нибудь, кто работал из бейсика с фотошопом...
Номер ответа: 15
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #15
Добавлено: 24.06.05 07:13
Да, GSerg прав! хотья функции и работают, но подумайте вот над чем: что представляет собой рисунок? Правильно, двухмерную матрицу. А какая ширина и высота клетки в матрице? Единственно верный ответ - это один_пиксел, или 15_твипов и то не всегда.