Образовательный виртуальный мир vAcademiaЗдесь показаны различия между двумя версиями данной страницы.
|
jazyk:image [2014/05/16 10:25] vadmin |
jazyk:image [2023/05/08 17:44] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | {{indexmenu_n>11}} | ||
| =====Генерация изображения с произвольной 2D-композицией для замены текстуры на объекте===== | =====Генерация изображения с произвольной 2D-композицией для замены текстуры на объекте===== | ||
| Строка 4: | Строка 5: | ||
| Для того, чтобы добавить в композицию изображение существует функция imageFromServerResource, которая принимает четыре параметра: | Для того, чтобы добавить в композицию изображение существует функция imageFromServerResource, которая принимает четыре параметра: | ||
| - | * x, y изображения относительно левого верхнего угла композиции; | + | * x, y изображения относительно левого верхнего угла композиции; |
| - | * серверный ресурс изображений (получаемый через getServerResource); | + | * серверный ресурс изображений (получаемый через getServerResource); |
| - | * объект композиции, к которому прикрепляется изображение. | + | * объект композиции, к которому прикрепляется изображение. |
| Для того, чтобы добавить в композицию текстовый элемент существует функция createText, которая возвращает объект текстового элемента, принимая 8 параметров: | Для того, чтобы добавить в композицию текстовый элемент существует функция createText, которая возвращает объект текстового элемента, принимая 8 параметров: | ||
| - | * x, y текста относительно левого верхнего угла композиции | + | * x, y текста относительно левого верхнего угла композиции; |
| - | * название шрифта, например: Arial | + | * название шрифта, например: Arial; |
| - | * булевый флаг, должен ли текст быть жирным | + | * булевый флаг, должен ли текст быть жирным; |
| - | * булевый флаг, должен ли текст быть курсивным | + | * булевый флаг, должен ли текст быть курсивным; |
| - | * булевый флаг, должен ли текст быть подчеркнутым | + | * булевый флаг, должен ли текст быть подчеркнутым; |
| - | * цвет шрифта в HTML-стиле, например, #FF00FF | + | * цвет шрифта в HTML-стиле, например, #FF00FF; |
| - | * строка с текстом | + | * строка с текстом; |
| - | * объект композиции, к которому прикрепляется текстовый элемент | + | * объект композиции, к которому прикрепляется текстовый элемент. |
| Для того, чтобы добавить в композицию прямоугольник заданного цвета существует функция createColorRect, которая возвращает объект цветового прямоугольника, принимая 6 параметров: | Для того, чтобы добавить в композицию прямоугольник заданного цвета существует функция createColorRect, которая возвращает объект цветового прямоугольника, принимая 6 параметров: | ||
| - | * x, y прямоугольника относительно левого верхнего угла композиции | + | * x, y прямоугольника относительно левого верхнего угла композиции; |
| - | * ширина и высота прямоугольника | + | * ширина и высота прямоугольника; |
| - | * цвет прямоугольника в HTML-стиле, например, #FF00FF | + | * цвет прямоугольника в HTML-стиле, например, #FF00FF; |
| - | * объект композиции, к которому прикрепляется прямоугольник | + | * объект композиции, к которому прикрепляется прямоугольник. |
| Для того, чтобы добавить в композицию линию существует функция createLine, которая возвращает объект линии, принимая 7 параметров: | Для того, чтобы добавить в композицию линию существует функция createLine, которая возвращает объект линии, принимая 7 параметров: | ||
| - | * x, y одного конца линии | + | * x, y одного конца линии; |
| - | * x, y второго конца линии | + | * x, y второго конца линии; |
| - | * толщина линии | + | * толщина линии; |
| - | * цвет линии в HTML-стиле, например, #FF00FF | + | * цвет линии в HTML-стиле, например, #FF00FF; |
| - | * объект композиции, к которому прикрепляется линия | + | * объект композиции, к которому прикрепляется линия. |
| Для того, чтобы заменить текстуру на 3D-объекте необходимо вызвать метод 3D-объекта | Для того, чтобы заменить текстуру на 3D-объекте необходимо вызвать метод 3D-объекта | ||
| replaceByGeneratedTexture, который возвращает объект изображения, принимая 4 параметра: | replaceByGeneratedTexture, который возвращает объект изображения, принимая 4 параметра: | ||
| - | * номер текстуры в 3D-объекте | + | * номер текстуры в 3D-объекте; |
| - | * ширину генерируемой текстуры | + | * ширину генерируемой текстуры; |
| - | * высоту генерируемой текстуры | + | * высоту генерируемой текстуры; |
| - | * объект композиции | + | * объект композиции. |
| Если какие-то элементы композиции выходят за границы генерируемой текстуры, они будут отсечены. Последовательность отрисовки 2D-элементов, а соответственно порядок наложения их друга на друга определяется порядком создания 2D-элементов. Композиция после замены текстуры удаляется и не может быть использована повторно. | Если какие-то элементы композиции выходят за границы генерируемой текстуры, они будут отсечены. Последовательность отрисовки 2D-элементов, а соответственно порядок наложения их друга на друга определяется порядком создания 2D-элементов. Композиция после замены текстуры удаляется и не может быть использована повторно. | ||
| - | var obj = scene.getObjectByName("uniq"); | + | var obj = scene.getObjectByName("uniq"); |
| - | scene.img1986 = getServerResource("uo_lection_1.png"); | + | scene.img1986 = getServerResource("uo_lection_1.png"); |
| - | obj.onPress = function() | + | obj.onPress = function() |
| - | { | + | { |
| - | var c = createComposition(); | + | var c = createComposition(); |
| - | var txt = createText(5, 5, "Arial", true, true, true, "#FF0000", "MyText5", c); | + | var txt = createText(5, 5, "Arial", true, true, true, "#FF0000", "MyText5", c); |
| - | var txt2 = createText(5, 35, "Verdana", false, true, true, "#00FF00", "MyText2", c); | + | var txt2 = createText(5, 35, "Verdana", false, true, true, "#00FF00", "MyText2", c); |
| - | var img = imageFromServerResource(30, 30, scene.img1986, c); | + | var img = imageFromServerResource(30, 30, scene.img1986, c); |
| - | this.replaceByGeneratedTexture(0, 256, 256, c); | + | this.replaceByGeneratedTexture(0, 256, 256, c); |
| - | } | + | } |
| У объекта изображения доступны для последующего изменения нижеперечисленные свойства: | У объекта изображения доступны для последующего изменения нижеперечисленные свойства: | ||
| - | * width, height – высота и ширина для отображения. По умолчанию равны ширине и высоте исходного изображения. | + | * width, height – высота и ширина для отображения. По умолчанию равны ширине и высоте исходного изображения. |
| У объекта изображения и у объекта текстового элемента есть функция getMediaSize(), которая задает объект, возвращающий реальные размеры исходного элемента, например, размер текста или исходный размер изображения. | У объекта изображения и у объекта текстового элемента есть функция getMediaSize(), которая задает объект, возвращающий реальные размеры исходного элемента, например, размер текста или исходный размер изображения. | ||
| - | var img = imageFromServerResource(30, 30, scene.img1986, c); | + | var img = imageFromServerResource(30, 30, scene.img1986, c); |
| - | var width = img.getMediaSize().width; | + | var width = img.getMediaSize().width; |
| - | var height = img.getMediaSize().height; | + | var height = img.getMediaSize().height; |