Exemple #1
0
 # - bezier -
import Geom as D
import Converter as C
import Generator as G
import KCore.test as test

# 1D
pts = C.array('x,y,z', 7, 1, 1)
x = pts[1][0]; y = pts[1][1]; z = pts[1][2]
x[0] = 6.; x[1] = 5.4; x[2] = 4.8; x[3] = 2.5; x[4] = 0.3
y[0] = 0.01; y[1] = 0.036; y[2] = 0.064; y[3] = 0.21; y[4] = 0.26; y[5] = 0.047
z[0] = 1.; z[1] = 1.; z[2] = 1.; z[3] = 1.; z[4] = 1.; z[5] = 1.; z[6] = 1.

a = D.bezier(pts)
test.testA([a],1)

# 2D
ni = 2; nj = 3
a = G.cart((0,0,0), (1,1,1), (ni,nj,1))
C.setValue(a, (1,1,1), [1.,1.,2.])
C.setValue(a, (1,2,1), [1.,2.,5.])
C.setValue(a, (1,3,1), [1.,3.,2.])
C.setValue(a, (2,1,1), [2.,1.,2.])
C.setValue(a, (2,2,1), [2.,2.,5.])
C.setValue(a, (2,3,1), [2.,3.,2.])
b = D.bezier(a, 10, 10)
test.testA([b],2)
test.writeCoverage(100)
Exemple #2
0
x[0] = 0.
y[0] = 0.
z[0] = 0.
x[1] = -2.
y[1] = 2.
z[1] = 0.
x[2] = -3.
y[2] = 3.
z[2] = 0.
x[3] = 2.
y[3] = 5.
z[3] = 0.
x[4] = 0.
y[4] = 7.
z[4] = 0.
b1 = D.bezier(pts)

x[0] = 5.
y[0] = 0.
z[0] = 0.
x[1] = 3.
y[1] = 2.
z[1] = 0.
x[2] = 2.
y[2] = 3.
z[2] = 0.
x[3] = 6.
y[3] = 5.
z[3] = 0.
x[4] = 5.
y[4] = 7.
# - mapCurvature (array) -
import Generator as G
import Converter as C
import Geom as D

ni = 2
nj = 3
a = G.cart((0, 0, 0), (1, 1, 1), (ni, nj, 1))
C.setValue(a, (1, 1, 1), [1., 1., 2.])
C.setValue(a, (1, 2, 1), [1., 2., 4.])
C.setValue(a, (1, 3, 1), [1., 3., 2.])
C.setValue(a, (2, 1, 1), [2., 1., 2.])
C.setValue(a, (2, 2, 1), [2., 2., 5.])
C.setValue(a, (2, 3, 1), [2., 3., 2.])
b = D.bezier(a, density=10.)

b = G.mapCurvature(b, N=100, power=0.5, dir=1)
C.convertArrays2File([b], 'out.plt')
# - bezier (array) -
import Geom as D
import Converter as C
import Generator as G

# Bezier 1D
pts = D.polyline([(0.,0.,0.), (0.,1.,0.), (2.,1.,0.), (2.,0.,0.),\
                  (4.,-1.,0.), (5.,6.,0.)])
# With a specified number of points
a = D.bezier(pts, N=100)
# With a specified point density
b = D.bezier(pts, density=10.)
C.convertArrays2File([pts, a, b], 'out.plt')

# Bezier 2D
ni = 2; nj = 3
a = G.cart((0,0,0), (1,1,1), (ni,nj,1))
C.setValue(a, (1,1,1), [1.,1.,2.])
C.setValue(a, (1,2,1), [1.,2.,4.])
C.setValue(a, (1,3,1), [1.,3.,2.])
C.setValue(a, (2,1,1), [2.,1.,2.])
C.setValue(a, (2,2,1), [2.,2.,5.])
C.setValue(a, (2,3,1), [2.,3.,2.])
b = D.bezier(a, density=10.)
C.convertArrays2File([a]+[b], 'out2.plt')
# - getCurvatureRadius (array) -
import Geom as D
import Transform as T
import KCore.test as test

# ligne : courbure infinie
a = D.line((0,0,0), (1,0,0), 3)
rad = D.getCurvatureRadius(a)
test.testA([rad],1) 

# cercle
a = D.circle((0,0,0), 1, 10, 0, 10)
rad = D.getCurvatureRadius(a)
test.testA([rad],2) 

# bezier
pts = D.polyline([(6,0.01,1), (5.4,0.036,1), (4.8,0.064,1), (2.5,0.21,1),
                  (0.3,0.26,1),(0,0.047,1),(0,0,0)])
a = D.bezier( pts, 100 )
rad = D.getCurvatureRadius(a)
test.testA([rad],3) 

# cercle pas dans le plan
a = D.circle((0,0,0), 1, 10, 0, 10)
a = T.rotate(a, (0,0,0), (1,0,0), 32.)
rad = D.getCurvatureRadius(a)
test.testA([rad],4) 
Exemple #6
0
imin = D.line((0, 0, 0), (0, 1, 0), 15)
jmin = D.line((0, 0, 0), (1, 0, 0), 15)
diag = D.line((1, 0, 0), (0, 1, 0), 15)

pts = C.array('x,y,z', 5, 1, 1)
x = pts[1][0]
y = pts[1][1]
z = pts[1][2]

x[0] = 0.
y[0] = 0.
x[1] = 0.2
y[1] = -0.2
x[2] = 0.4
y[2] = -0.5
x[3] = 0.8
y[3] = -0.1
x[4] = 1.
y[4] = 0.
b2 = D.bezier(pts, 15)

N = 5
c = G.cart((0, 0, 0), (1. / (N - 1), 1, 1), (N, 1, 1))
c = G.enforceX(c, 0.5, 0.01, (2, 5))
b2 = G.map(b2, c)

C.convertArrays2File([imin, b2, diag], 'contours.plt', 'bin_tp')

tri = G.TFI([imin, b2, diag])
C.convertArrays2File([tri], "out.plt", "bin_tp")
Ni = 10
d = G.cart((0, 0, 0), (1. / (Ni - 1), 1., 1.), (Ni, 1, 1))
m = G.map(l, d)
C.convertArrays2File([m], "out1.plt")

# Map on a structured surface
ni = 2
nj = 3
a = G.cart((0, 0, 0), (1, 1, 1), (ni, nj, 1))
C.setValue(a, (1, 1, 1), [1., 1., 2.])
C.setValue(a, (1, 2, 1), [1., 2., 5.])
C.setValue(a, (1, 3, 1), [1., 3., 2.])
C.setValue(a, (2, 1, 1), [2., 1., 2.])
C.setValue(a, (2, 2, 1), [2., 2., 5.])
C.setValue(a, (2, 3, 1), [2., 3., 2.])
b = D.bezier(a, 10, 10)
Ni = 50
Nj = 30
d = G.cart((0, 0, 0), (1. / (Ni - 1), 1. / (Nj - 1), 1.), (Ni, Nj, 1))
d = G.enforceX(d, 0.5, 0.01, (10, 20))
d = G.enforceY(d, 0.5, 0.01, (10, 20))
b = G.map(b, d)
C.convertArrays2File([b], "out2.plt")

# Map in a direction
a = G.cylinder((0, 0, 0), 0.5, 2., 0, 60, 1., (20, 20, 1))
Ni = 10
d = G.cart((0, 0, 0), (1. / (Ni - 1), 1., 1.), (Ni, 1, 1))
d = G.enforcePlusX(d, 0.01, (10, 20))
a = G.map(a, d, 2)
C.convertArrays2File([a], "out3.plt")
Exemple #8
0
# - display (array) -
import Generator as G
import CPlot
import time
import Converter as C
import Geom as D

def F(x): return x

# - STRUCTURE 1D -
pts = D.polyline([(0.,0.,0.), (4.,5.,0.), (6.,21.,0.), (18.,2.,0.)])
a = D.bezier(pts, 20)
C._addVars(a, 'p')
a = C.initVars(a, 'p', F, ['x'])

# mesh (mode 0)
CPlot.display([a], mode='mesh', posCam=(40,-2,15), posEye=(8,13,0)); time.sleep(2)

# solid (mode 1)
CPlot.display([a], mode='solid'); time.sleep(2)

# scalar field (mode 3)
CPlot.display([a], mode='scalar', scalarField=0); time.sleep(2)

# - BAR -
pts = D.polyline([(0.,0.,0.), (4.,5.,0.), (6.,21.,0.), (18.,2.,0.)])
a = D.bezier(pts, 20)
C._addVars(a, 'p')
a = C.initVars(a, 'p', F, ['x'])
a = C.convertArray2Hexa(a)
# - splitCurvatureRadius (array) -
import Converter as C
import Transform as T
import Geom as D

pts = C.array('x,y,z', 7, 1, 1)
x = pts[1][0]; y = pts[1][1]; z = pts[1][2]
x[0]= 6.; x[1] = 5.4; x[2]=4.8; x[3] = 2.5; x[4]  = 0.3
y[0]=10.; y[1]=0.036; y[2]=-5.;y[3]=0.21;y[4]=0.26;y[5]=7.
z[0]=1.; z[1]=1.; z[2]=1.;z[3]=1.;z[4]=1.;z[5]=1.; z[6]=1.

a = D.bezier( pts, 50 )
L = T.splitCurvatureRadius(a)
C.convertArrays2File([a]+L, 'out.plt')