Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода - [11]
># File groups.py
># Create groups
>#----------------------------------------------------------
>import bpyimport mathutils
>from mathutils
>import Vector
># Слои
>Display = 5
>Build = 6
>def setObject(name, mat):
> ob = bpy.context.object
> ob.name = name
> ob.data.materials.append(mat)
> return ob
># Перемещение объекта в данный слой.
>def moveToLayer(ob, layer):
> ob.layers[layer] = True
> for n in range(20):
> if n != layer:
> ob.layers[n] = False
> return
> # Добавление объекта TextCurve в слое 13
>def addText(string, loc):
> tcu = bpy.data.curves.new(string+'Data', 'FONT')
> text = bpy.data.objects.new(string+'Text', tcu)
> tcu.body = string
> tcu.align = 'RIGHT'
> text.location = loc
> bpy.context.scene.objects.link(text)
> # Нужно изменить text.layers после того, как текст будет привязан к сцене,
> # в противном случае изменение не сможет сработать. moveToLayer(text, Build)
> return text
>def run():
> # Создание двух материалов
> red = bpy.data.materials.new('RedMat')
> red.diffuse_color = (1,0,0)
> green = bpy.data.materials.new('GreenMat')
> green.diffuse_color = (0,1,0)
> # Позиции
> origin = Vector((0,0,0))
> dx = Vector((2,0,0))
> dy = Vector((0,2,0))
> dz = Vector((0,0,2))
> # Размещение объектов на слой построения (Build)
> layers = 20*[False]
> layers[Build] = True
> # Создание объектов
> bpy.ops.mesh.primitive_cube_add(location=dz, layers=layers)
> redCube = setObject('RedCube', red)
> bpy.ops.mesh.primitive_cube_add(location=dx+dz, layers=layers)
> greenCube = setObject('GreenCube', green)
> bpy.ops.mesh.primitive_uv_sphere_add(location=2*dx+dz, layers=layers)
> redSphere = setObject('RedSphere', red)
> bpy.ops.mesh.primitive_uv_sphere_add(location=3*dx+dz, layers=layers)
> greenSphere = setObject('GreenSphere', green)
> # Создание текстов
> redText = addText('Red', -dx)
> greenText = addText('Green', -dx)
> cubeText = addText('Cube', -dx)
> sphereText = addText('Sphere', -dx)
> # Создание групп
> redGrp = bpy.data.groups.new('RedGroup')
> greenGrp = bpy.data.groups.new('GreenGroup')
> cubeGrp = bpy.data.groups.new('CubeGroup')
> sphereGrp = bpy.data.groups.new('SphereGroup')
> # Таблица членов групп
> members = {
> redGrp : [redCube, redSphere, redText],
> greenGrp : [greenCube, greenSphere, greenText],
> cubeGrp : [redCube, greenCube, cubeText],
> sphereGrp : [redSphere, greenSphere, sphereText] }
> # Привязка объектов к группам
> for group in members.keys():
> for ob in members[group]:
> group.objects.link(ob)
> # Список пустышек
> empties = [
> ('RedEmpty', origin, redGrp),
> ('GreenEmpty', dy, greenGrp),
> ('CubeEmpty', 2*dy, cubeGrp),
> ('SphereEmpty', 3*dy, sphereGrp) ]
> # Создание пустышек и размещение их в слое отображения (Display)
> scn = bpy.context.scene
> for (name, loc, group) in empties:
> empty = bpy.data.objects.new(name, None)
> empty.location = loc
> empty.name = name
> empty.dupli_type = 'GROUP'
> empty.dupli_group = group
> scn.objects.link(empty)
> moveToLayer(empty, Display)
> # Слой отображения назначается активным слоем
> scn.layers[Display] = True
> for n in range(20):
> if n != Display:
> scn.layers[n] = False
> return
>if __name__ == "__main__":
> run()
Эта программа добавляет ico-сферу, деформированную решёткой. Модификатор решётки действует только на группу вершин в верхней половине сферы.
>#----------------------------------------------------------
># File lattice.py
>#----------------------------------------------------------
>import bpy
>def createIcoSphere(origin):
> # Создание ico-сферы
> bpy.ops.mesh.primitive_ico_sphere_add(location=origin)
> ob = bpy.context.object
> me = ob.data
> # Создание групп вершин
> upper = ob.vertex_groups.new('Upper')
> lower = ob.vertex_groups.new('Lower')
> for v in me.vertices:
> if v.co[2] > 0.001:
> upper.add([v.index], 1.0, 'REPLACE')
> elif v.co[2] < -0.001:
> lower.add([v.index], 1.0, 'REPLACE')
> else: upper.add([v.index], 0.5, 'REPLACE')
> lower.add([v.index], 0.5, 'REPLACE')
> return ob
>def createLattice(origin):
> # Создание решётки и объекта
> lat = bpy.data.lattices.new('MyLattice')
> ob = bpy.data.objects.new('LatticeObject', lat)
> ob.location = origin ob.show_x_ray = True
> # Привязка объекта к сцене
> scn = bpy.context.scene
> scn.objects.link(ob)
> scn.objects.active = ob
> scn.update()
> # Установка атрибутов решётки
> lat.interpolation_type_u = 'KEY_LINEAR'
> lat.interpolation_type_v = 'KEY_CARDINAL'
> lat.interpolation_type_w = 'KEY_BSPLINE'
> lat.use_outside = False
> lat.points_u = 2
> lat.points_v = 2 lat.points_w = 2
> # Расстановка точек решётки
> s = 1.0
> points = [
> (-s,-s,-s), (s,-s,-s), (-s,s,-s), (s,s,-s),
> (-s,-s,s), (s,-s,s), (-s,s,s), (s,s,s)
> ]
> for n,pt in enumerate(lat.points):
> for k in range(3):
> pt.co_deform[k] = points[n][k]
> pass
> return ob
В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИИнформационная технологияРУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯInformation technology. Guidelines for the management of software documentationИздание официальноеДата введения 1994-07-01ГОССТАНДАРТ РОССИИ Москва© Издательство стандартов, 1994.
Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы.