Вход/Регистрация
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
вернуться

Larsson Thomas

Шрифт:

(0.20,0.39,0.00,0.35),

(0.20,0.19,0.00,1.00),

(0.20,0.08,0.00,0.35)

]

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

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

nPointsU = len(coords)

spline.points.add(nPointsU)

for n in range(nPointsU):

spline.points[n].co = coords[n]

# Настройка атрибутов сплайна. Точки, вероятно, должны существовать к этому моменту.

spline.use_cyclic_u = True

spline.resolution_u = 6

spline.order_u = 3

return ob

def createCurveObject(bevob):

# Создание кривой и объекта

cu = bpy.data.curves.new('MyCurve', 'CURVE')

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)

  • Читать дальше
  • 1
  • ...
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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