Чтение онлайн

на главную - закладки

Жанры

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

Larsson Thomas

Шрифт:

ob = bpy.data.objects.new('MyCurveObject', cu)

bpy.context.scene.objects.link(ob)

# Настройка некоторых атрибутов

cu.bevel_object = bevob

cu.dimensions = '3D'

cu.use_fill_back = True

cu.use_fill_front = True

ob.show_name = True

# Координаты
Безье

beziers = [

((-1.44,0.20,0.00), (-1.86,-0.51,-0.36), (-1.10,0.75,0.28)),

((0.42,0.13,-0.03), (-0.21,-0.04,-0.27), (1.05,0.29,0.21)),

((1.20,0.75,0.78), (0.52,1.36,1.19), (2.76,-0.63,-0.14)) ]

# Создание сплайна и установка управляющих точек Безье

spline = cu.splines.new('BEZIER')

nPointsU = len(beziers)

spline.bezier_points.add(nPointsU)

for n in range(nPointsU):

bpt = spline.bezier_points[n]

(bpt.co, bpt.handle_left, bpt.handle_right) = beziers[n]

return ob

def run(origin):

bevob = createBevelObject

bevob.location = origin

curveob = createCurveObject(bevob)

curveob.location = origin

bevob.select = False

curveob.select = True

bpy.ops.transform.translate(value=(2,0,0))

return

if __name__ == "__main__":

run((0,0,0))

Типы кривых

Эта программа иллюстрирует различие между типами кривых: POLY, NURBS и BEZIER.

#----------------------------------------------------------

# File curve_types.py

#----------------------------------------------------------

import bpy

from math import sin, pi

# Poly (многоугольник) и nurbs

def makePolySpline(cu):

spline = cu.splines.new('POLY')

cu.dimensions = '3D'

addPoints(spline, 8)

def makeNurbsSpline(cu):

spline = cu.splines.new('NURBS')

cu.dimensions = '3D'

addPoints(spline, 4)

spline.order_u = 3

return spline

def addPoints(spline, nPoints):

spline.points.add(nPoints-1)

delta = 1/(nPoints-1)

for n in range(nPoints):

spline.points[n].co = (0, n*delta, sin(n*pi*delta), 1)

#
Безье

def makeBezierSpline(cu):

spline = cu.splines.new('BEZIER')

cu.dimensions = '3D'

order = 3

addBezierPoints(spline, order+1)

spline.order_u = order

def addBezierPoints(spline, nPoints):

spline.bezier_points.add(nPoints-1)

bzs = spline.bezier_points

delta = 1/(nPoints-1)

for n in range(nPoints):

bzs[n].co = (0, n*delta, sin(n*pi*delta))

print(bzs[n].co)

for n in range(1, nPoints):

bzs[n].handle_left = bzs[n-1].co

for n in range(nPoints-1):

bzs[n].handle_right = bzs[n+1].co

return spline

# Создание кривой с объектом и привязка к сцене

def makeCurve(name, origin, dx):

cu = bpy.data.curves.new('%sCurve' % name, 'CURVE')

ob = bpy.data.objects.new('%sObject' % name, cu)

(x,y,z) = origin ob.location = (x+dx,y,z)

ob.show_name = True

bpy.context.scene.objects.link(ob)

return cu

def run(origin):

polyCurve = makeCurve("Poly", origin, 0)

makePolySpline(polyCurve)

nurbsCurve = makeCurve("NurbsEnd", origin, 1)

spline = makeNurbsSpline(nurbsCurve)

spline.use_endpoint_u = True

nurbsCurve = makeCurve("NurbsNoend", origin, 2)

spline = makeNurbsSpline(nurbsCurve)

spline.use_endpoint_u = False

bezierCurve = makeCurve("Bezier", origin, 3)

makeBezierSpline(bezierCurve)

Поделиться:
Популярные книги

Архил...? 4

Кожевников Павел
4. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
5.50
рейтинг книги
Архил...? 4

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.39
рейтинг книги
Мятежник

Дурашка в столичной академии

Свободина Виктория
Фантастика:
фэнтези
7.80
рейтинг книги
Дурашка в столичной академии

Котенок. Книга 3

Федин Андрей Анатольевич
3. Котенок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Котенок. Книга 3

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Господин следователь. Книга 3

Шалашов Евгений Васильевич
3. Господин следователь
Детективы:
исторические детективы
5.00
рейтинг книги
Господин следователь. Книга 3

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Командир Красной Армии

Поселягин Владимир Геннадьевич
1. Командир Красной Армии
Фантастика:
попаданцы
8.72
рейтинг книги
Командир Красной Армии

Рота Его Величества

Дроздов Анатолий Федорович
Новые герои
Фантастика:
боевая фантастика
8.55
рейтинг книги
Рота Его Величества

Босс Мэн

Киланд Ви
Любовные романы:
современные любовные романы
8.97
рейтинг книги
Босс Мэн

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III

Идеальный мир для Лекаря 27

Сапфир Олег
27. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 27