 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"LanuHum" <Lan### [at] yandex ru> wrote:
> "And" <49341109@ntnu.edu.tw> wrote:
>
> > Parallel Bezier curve... sounds a challenge. I use Inkscape to do this operation
> > sometimes.(But only 2-D) Keep it up.
>
> The problem is solved.
> Inkscape won't help. Parallel curves shall have number of control points equal
> to number of control points of the original (sample).
> I will use only the Blender tools.
> Yesterday I already built a parallel bezier curve(3D) in Blender, using Python
> and formulas. :)))))))
Wow, that's great.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"And" <49341109@ntnu.edu.tw> wrote:
> "LanuHum" <Lan### [at] yandex ru> wrote:
> > "And" <49341109@ntnu.edu.tw> wrote:
> >
> > > Parallel Bezier curve... sounds a challenge. I use Inkscape to do this operation
> > > sometimes.(But only 2-D) Keep it up.
> >
> > The problem is solved.
> > Inkscape won't help. Parallel curves shall have number of control points equal
> > to number of control points of the original (sample).
> > I will use only the Blender tools.
> > Yesterday I already built a parallel bezier curve(3D) in Blender, using Python
> > and formulas. :)))))))
>
> Wow, that's great.
It's a go. Parallel curves are constructed automatically.
Now control of a UV-mapping is necessary.
Post a reply to this message
Attachments:
Download 'rail_guide.blend.jpg' (471 KB)
Preview of image 'rail_guide.blend.jpg'

|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"LanuHum" <Lan### [at] yandex ru> wrote:
> "And" <49341109@ntnu.edu.tw> wrote:
> > "LanuHum" <Lan### [at] yandex ru> wrote:
> > > "And" <49341109@ntnu.edu.tw> wrote:
> > >
> > > > Parallel Bezier curve... sounds a challenge. I use Inkscape to do this
operation
> > > > sometimes.(But only 2-D) Keep it up.
> > >
> > > The problem is solved.
> > > Inkscape won't help. Parallel curves shall have number of control points equal
> > > to number of control points of the original (sample).
> > > I will use only the Blender tools.
> > > Yesterday I already built a parallel bezier curve(3D) in Blender, using Python
> > > and formulas. :)))))))
> >
> > Wow, that's great.
>
> It's a go. Parallel curves are constructed automatically.
> Now control of a UV-mapping is necessary.
Do you write them by yourself? I recall that you ever said your math was not
good enough to deal with such a thing.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"And" <49341109@ntnu.edu.tw> wrote:
> "LanuHum" <Lan### [at] yandex ru> wrote:
> >
> > It's a go. Parallel curves are constructed automatically.
> > Now control of a UV-mapping is necessary.
>
> Do you write them by yourself? I recall that you ever said your math was not
> good enough to deal with such a thing.
I am very bad mathematician.
Almost all computation is made by Blender. I am able to cause the necessary
functions.
I found something in the Internet.
1/3 t and 2/3 t are found by the Blender. The formula finds P1 and P2.
If you like to simulate on formulas, then use Blender and Python.
Less mathematics will be required.
:)))))
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"And" <49341109@ntnu.edu.tw> wrote:
> "LanuHum" <Lan### [at] yandex ru> wrote:
> > "And" <49341109@ntnu.edu.tw> wrote:
> > > "LanuHum" <Lan### [at] yandex ru> wrote:
> > > > "And" <49341109@ntnu.edu.tw> wrote:
> > > >
> > > > > Parallel Bezier curve... sounds a challenge. I use Inkscape to do this
operation
> > > > > sometimes.(But only 2-D) Keep it up.
> > > >
> > > > The problem is solved.
> > > > Inkscape won't help. Parallel curves shall have number of control points equal
> > > > to number of control points of the original (sample).
> > > > I will use only the Blender tools.
> > > > Yesterday I already built a parallel bezier curve(3D) in Blender, using Python
> > > > and formulas. :)))))))
> > >
> > > Wow, that's great.
> >
> > It's a go. Parallel curves are constructed automatically.
> > Now control of a UV-mapping is necessary.
>
> Do you write them by yourself? I recall that you ever said your math was not
> good enough to deal with such a thing.
How many there is math?
import bpy
scene = bpy.context.scene
ob = bpy.context.object
cu = ob.parent
pd = cu.data.path_duration
frames = 4*[1]
frames[1] = pd/3
frames[2] = pd/3*2
frames[3] = pd
duplis = []
for i in range(4):
scene.frame_set(frames[i],0.0)
bpy.ops.object.duplicate()
du = bpy.context.object
duplis.append(du)
cu.select = True
scene.objects.active = cu
bpy.ops.object.parent_clear(type='CLEAR_KEEP_TRANSFORM')
du.select = False
cu.select = False
ob.select = True
scene.objects.active = ob
ob.select = False
bpts = []
for i in range(4):
bpts.append(duplis[i].data.splines[0].bezier_points)
all_coords = []
for i, pt in enumerate(bpts[0]):
coords = []
for p in range(4):
co = duplis[p].matrix_world * bpts[p][i].handle_left
coords.append(co[:])
all_coords.append(coords)
coords = []
for p in range(4):
co = duplis[p].matrix_world * bpts[p][i].co
coords.append(co[:])
all_coords.append(coords)
all_coords.append(coords)
coords = []
for p in range(4):
co = duplis[p].matrix_world * bpts[p][i].handle_right
coords.append(co[:])
all_coords.append(coords)
all_coords.append(all_coords[0])
all_coords.pop(0)
all_coords.append(all_coords[0])
all_coords.pop(0)
cu = None
for i, coords in enumerate(all_coords):
if i % 4 == 0:
cu = bpy.data.curves.new('MyCurve', 'CURVE')
cu.dimensions = '3D'
obj = bpy.data.objects.new('MyCurveObject', cu)
bpy.context.scene.objects.link(obj)
x0 = coords[0][0]
y0 = coords[0][1]
z0 = coords[0][2]
x1 = coords[1][0]
y1 = coords[1][1]
z1 = coords[1][2]
x2 = coords[2][0]
y2 = coords[2][1]
z2 = coords[2][2]
x3 = coords[3][0]
y3 = coords[3][1]
z3 = coords[3][2]
p1x=(-5*x0+18*x1-9*x2+2*x3)/6
p1y=(-5*y0+18*y1-9*y2+2*y3)/6
p1z=(-5*z0+18*z1-9*z2+2*z3)/6
p2x=(2*x0-9*x1+18*x2-5*x3)/6
p2y=(2*y0-9*y1+18*y2-5*y3)/6
p2z=(2*z0-9*z1+18*z2-5*z3)/6
bezier = [((x0,y0,z0),(x0,y0,z0),(p1x,p1y,p1z)),
((x3,y3,z3),(p2x,p2y,p2z),(x3,y3,z3))]
spline = cu.splines.new('BEZIER')
spline.bezier_points.add(1)
for n in range(2):
bpt = spline.bezier_points[n]
bpt.co[:] = bezier[n][0]
bpt.handle_left[:] = bezier[n][1]
bpt.handle_right[:] = bezier[n][2]
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"LanuHum" <Lan### [at] yandex ru> wrote:
> "And" <49341109@ntnu.edu.tw> wrote:
> > "LanuHum" <Lan### [at] yandex ru> wrote:
> > > "And" <49341109@ntnu.edu.tw> wrote:
> > > > "LanuHum" <Lan### [at] yandex ru> wrote:
> > > > > "And" <49341109@ntnu.edu.tw> wrote:
> > > > >
> > > > > > Parallel Bezier curve... sounds a challenge. I use Inkscape to do this
operation
> > > > > > sometimes.(But only 2-D) Keep it up.
> > > > >
> > > > > The problem is solved.
> > > > > Inkscape won't help. Parallel curves shall have number of control points
equal
> > > > > to number of control points of the original (sample).
> > > > > I will use only the Blender tools.
> > > > > Yesterday I already built a parallel bezier curve(3D) in Blender, using
Python
> > > > > and formulas. :)))))))
> > > >
> > > > Wow, that's great.
> > >
> > > It's a go. Parallel curves are constructed automatically.
> > > Now control of a UV-mapping is necessary.
> >
> > Do you write them by yourself? I recall that you ever said your math was not
> > good enough to deal with such a thing.
>
> How many there is math?
>
> import bpy
> scene = bpy.context.scene
> ob = bpy.context.object
> cu = ob.parent
> pd = cu.data.path_duration
> frames = 4*[1]
> frames[1] = pd/3
> frames[2] = pd/3*2
> frames[3] = pd
> duplis = []
> for i in range(4):
> scene.frame_set(frames[i],0.0)
> bpy.ops.object.duplicate()
> du = bpy.context.object
> duplis.append(du)
> cu.select = True
> scene.objects.active = cu
> bpy.ops.object.parent_clear(type='CLEAR_KEEP_TRANSFORM')
> du.select = False
> cu.select = False
> ob.select = True
> scene.objects.active = ob
> ob.select = False
> bpts = []
> for i in range(4):
> bpts.append(duplis[i].data.splines[0].bezier_points)
> all_coords = []
> for i, pt in enumerate(bpts[0]):
> coords = []
> for p in range(4):
> co = duplis[p].matrix_world * bpts[p][i].handle_left
> coords.append(co[:])
> all_coords.append(coords)
> coords = []
> for p in range(4):
> co = duplis[p].matrix_world * bpts[p][i].co
> coords.append(co[:])
> all_coords.append(coords)
> all_coords.append(coords)
> coords = []
> for p in range(4):
> co = duplis[p].matrix_world * bpts[p][i].handle_right
> coords.append(co[:])
> all_coords.append(coords)
> all_coords.append(all_coords[0])
> all_coords.pop(0)
> all_coords.append(all_coords[0])
> all_coords.pop(0)
> cu = None
>
> for i, coords in enumerate(all_coords):
> if i % 4 == 0:
> cu = bpy.data.curves.new('MyCurve', 'CURVE')
> cu.dimensions = '3D'
> obj = bpy.data.objects.new('MyCurveObject', cu)
> bpy.context.scene.objects.link(obj)
> x0 = coords[0][0]
> y0 = coords[0][1]
> z0 = coords[0][2]
> x1 = coords[1][0]
> y1 = coords[1][1]
> z1 = coords[1][2]
> x2 = coords[2][0]
> y2 = coords[2][1]
> z2 = coords[2][2]
> x3 = coords[3][0]
> y3 = coords[3][1]
> z3 = coords[3][2]
>
> p1x=(-5*x0+18*x1-9*x2+2*x3)/6
> p1y=(-5*y0+18*y1-9*y2+2*y3)/6
> p1z=(-5*z0+18*z1-9*z2+2*z3)/6
> p2x=(2*x0-9*x1+18*x2-5*x3)/6
> p2y=(2*y0-9*y1+18*y2-5*y3)/6
> p2z=(2*z0-9*z1+18*z2-5*z3)/6
>
> bezier = [((x0,y0,z0),(x0,y0,z0),(p1x,p1y,p1z)),
> ((x3,y3,z3),(p2x,p2y,p2z),(x3,y3,z3))]
>
> spline = cu.splines.new('BEZIER')
> spline.bezier_points.add(1)
> for n in range(2):
> bpt = spline.bezier_points[n]
> bpt.co[:] = bezier[n][0]
> bpt.handle_left[:] = bezier[n][1]
> bpt.handle_right[:] = bezier[n][2]
You say that it doesn't have many mathematics. Ok.
By contrast, I can't understand this code.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"And" <49341109@ntnu.edu.tw> wrote:
>
> You say that it doesn't have many mathematics. Ok.
> By contrast, I can't understand this code.
:)))))))
In any source code of the math looks equally:
* / + - sin cos tan atan sqrt and so on...
In my code you will see only 6 lines math.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"LanuHum" <Lan### [at] yandex ru> wrote:
> "And" <49341109@ntnu.edu.tw> wrote:
> >
> > You say that it doesn't have many mathematics. Ok.
> > By contrast, I can't understand this code.
>
> :)))))))
> In any source code of the math looks equally:
> * / + - sin cos tan atan sqrt and so on...
> In my code you will see only 6 lines math.
Well.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Round Boxes with Array-modifiers:
Brick walls:
8 second render.
Post a reply to this message
Attachments:
Download 'brick_roundbox.blend.jpg' (390 KB)
Preview of image 'brick_roundbox.blend.jpg'

|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Texture testing needed.
#declare Finish_Material = finish {
emission 0
reflection {
<1,1,1>
exponent 1
falloff 0
metallic 1 }
}
#declare Finish_001_Material = finish {
emission 0.1067
}
#declare Color_002_Material = pigment{color srgbft <1,1,1,0,1>}
#declare Color_Material = pigment{color srgbft <1,0.1842,0.007459,1,0>}
#declare Color_001_Material = pigment{color srgbft <0.905,1,0.9572,0,0>}
#declare Simple_texture_Material = texture{
pigment{Color_Material}
}
#declare Simple_texture_001_Material = texture{
pigment{Color_001_Material}
finish{Finish_Material}
}
#declare Simple_texture_003_Material = texture{
pigment{Color_002_Material}
}
#declare Simple_texture_002_Material = texture{
pigment{color rgb <0.02484,0.01929,0.2569>}
finish{Finish_001_Material}
}
#declare Texture_map_002_Material = texture {
onion
texture_map {
#declare ColorRamp_0_Material = texture{pigment{color srgbt
<0.02627,0.007679,0.2254,0>}};
[0.0 ColorRamp_0_Material]
#declare ColorRamp_1_Material = texture{pigment{color srgbt
<0.125,0.00651,0.00321,0>}};
[0.125 ColorRamp_1_Material]
[0.3857615292072296 Simple_texture_002_Material]
[0.8940397500991821 Simple_texture_003_Material]
[1.0 Simple_texture_003_Material]
}
}
#declare Texture_map_001_Material = texture {
wrinkles
texture_map {
[0 Simple_texture_Material]
[1 Simple_texture_001_Material]
}
}
#declare Texture_map_Material = texture {
granite
texture_map {
[0 Texture_map_002_Material]
[1 Texture_map_001_Material]
}
}
Post a reply to this message
Attachments:
Download 'textest.jpg' (327 KB)
Preview of image 'textest.jpg'

|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |