# - 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)
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)
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")
# - 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')