################################### ###02_uebung ### Langmann_Sven /// _diag ### 20241011 ################################### import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/") ### add path where "DM_lib.py" can be found !!! #sys.path.append("P:/DM2/") ### add path where "DM_lib.py" can be found !!! sys.path.append("C:\Users\Sven\OneDrive\Tu Graz\DM2")### add path where "DM_lib.py" can be found !!! import DM_lib as dm ### reload(dm) ################################## dm.PointRadius(displayModeX=0, rad=2, styl=3, verbose=0) rs.EnableRedraw (0) dm.eA() def DrawCube(edgeLen, rotate=0): vecC = [] center= [0,0,0] vecC.append( rs.VectorAdd( center, rs.VectorScale( [edgeLen,edgeLen,-edgeLen], 1))) #=Vector A =0 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-edgeLen,edgeLen,-edgeLen], 1))) #=Vector B =1 vecC.append( rs.VectorAdd( center, rs.VectorScale( [edgeLen,-edgeLen,-edgeLen], 1))) #=Vector C =2 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-edgeLen,-edgeLen,-edgeLen], 1)))#=Vector D =3 ### vecC.append( rs.VectorAdd( center, rs.VectorScale( [edgeLen,edgeLen,edgeLen], 1))) #=Vector E =4 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-edgeLen,edgeLen,edgeLen], 1))) #=Vector F =5 vecC.append( rs.VectorAdd( center, rs.VectorScale( [edgeLen,-edgeLen,edgeLen], 1))) #=Vector G =6 vecC.append( rs.VectorAdd( center, rs.VectorScale( [-edgeLen,-edgeLen,edgeLen], 1))) #=Vector H =7 ### if rotate: randvec = dm.pntRandCoords(-1, 1)[0] for i,vec in enumerate(vecC): vecC[i] = rs.VectorRotate( vec, 30.0, randvec ) baseCrv = rs.AddCurve( [vecC[0], vecC[1], vecC[3], vecC[2], vecC[0]], 1 ) topCrv = rs.AddCurve( [vecC[4], vecC[5], vecC[7], vecC[6], vecC[4]], 1 ) rightCrv = rs.AddCurve( [vecC[0], vecC[4], vecC[6], vecC[2], vecC[0]], 1 ) leftpCrv = rs.AddCurve( [vecC[1], vecC[5], vecC[7], vecC[3], vecC[1]], 1 ) ### for i,car in enumerate(["A","B","C","D","E","F","G","H"]): rs.AddTextDot( car, [vecC[0], vecC[1], vecC[2], vecC[3],vecC[4], vecC[5], vecC[6], vecC[7]][i] ) return vecC def DrawDiff(baseCrv, topCrv, anz): coords = rs.DivideCurve(baseCrv, anz, 0) for y,corC in enumerate(coords): rs.ObjectColor( rs.AddPoint( corC ), [10,10,120] ) ran = random.uniform(4,16) def DrawPic (grayScale,makeEleva,makeCurve,intervall,img_path,area,edgeLen,direction): pixels = dm.getPixels(img_path, steps_x=intervall, steps_y=intervall) ###Ermittelung Verhaeltniss h=len(pixels[0:]) b=len(pixels[0]) fh=(edgeLen/ h)*2 fb=(edgeLen/ b)*2 #### allCoords = [] for y,row in enumerate(pixels[0:]): #if y>140: #continue coords = [] for x,col in enumerate(row[0:]): dm.esc() avg = int( (col[0] + col[1] + col[2])/3 ) xd=0 #xd=XDirection yd=0 #yd zd=0 if direction==1: #xy if x==0: xd=area[0] yd=area[1] zd=(255-avg)*0.01*makeEleva+area[2] else: xd=area[0]+(fb*(x)) yd=area[1]+(fh*(y)) zd=(255-avg)*0.01*makeEleva+area[2] elif direction==2: #yz if x==0: xd=(255-avg)*0.01*makeEleva+area[2] yd=area[0] zd=area[1] else: xd=(255-avg)*0.01*makeEleva+area[2] yd=area[0]+(fb*(x)) zd=area[1]+(fh*(y)) elif direction==3: #xz if x==0: xd=area[1] yd=(255-avg)*0.01*makeEleva+area[2] zd=area[0] else: xd=area[1]+(fb*(x)) yd=(255-avg)*0.01*makeEleva+area[2] zd=area[0]+(fh*(y)) cor = [xd, yd, zd] coords.append( cor ) if 1 or not makeCurve: rs.ObjectColor( rs.AddPoint( cor ), col) allCoords.append( coords ) if makeCurve: col = dm.pntCentroid(row) if y%15==0: rs.ZoomExtents() rs.Redraw() if 1: rs.DeleteObjects( rs.ObjectsByType( 1 )) anz = 3001 #rad = 10 edgeLen = 35 vecC = DrawCube(edgeLen, rotate=0) #picture grayScale = 0 makeEleva = 1 makeCurve = 5 intervall = 1 img_name = "C:\Users\Sven\OneDrive\Tu Graz\DM2\urs.jpg" area=[vecC[3][0],vecC[3][1],vecC[3][2]] #D-base Curve DrawPic(grayScale,makeEleva,makeCurve,intervall,"C:\Users\Sven\OneDrive\Tu Graz\DM2\urs.jpg",area,edgeLen,1) #### area=[vecC[7][0],vecC[7][1],vecC[7][2]] #H-top Curve DrawPic(grayScale,makeEleva,makeCurve,intervall,"C:\Users\Sven\OneDrive\Tu Graz\DM2\urs.jpg",area,edgeLen,1) #### area=[vecC[3][0],vecC[3][1],vecC[3][2]] #D-left Curve DrawPic(grayScale,makeEleva,makeCurve,intervall,"C:\Users\Sven\OneDrive\Tu Graz\DM2\diag.jpg",area,edgeLen,2) ##### area=[vecC[2][1],vecC[2][2],vecC[2][0]] #C-Right Curve DrawPic(grayScale,makeEleva,makeCurve,intervall,"C:\Users\Sven\OneDrive\Tu Graz\DM2\diag.jpg",area,edgeLen,2) #### area=[vecC[3][0],vecC[3][1],vecC[3][2]] #D-front Curve DrawPic(grayScale,makeEleva,makeCurve,intervall,"C:\Users\Sven\OneDrive\Tu Graz\DM2\Teufel.jpg",area,edgeLen,3) #### area=[vecC[1][2],vecC[1][0],vecC[1][1]] #A-Back Curve DrawPic(grayScale,makeEleva,makeCurve,intervall,"C:\Users\Sven\OneDrive\Tu Graz\DM2\Teufel.jpg",area,edgeLen,3) #### #### dm.zA()