|
| MAS ETH ARCH/CAAD - 2005/06 - STUDENT PAGES Master of Advanced Studies in Architecture, Specialization in Computer Aided Architectural Design | 065-0005/6 Supervision: Prof. Dr. Ludger Hovestadt, Philipp Schaerer Chair of CAAD, ETH Zurich Tobias WendtTranslatingKlaus KProcedure klaus; VAR spx,spy,npx,npy,linie: Real; str,newStrIndex, newStrCol: STRING; Viereckhandle1,Viereckhandle2,Punkthandle : Handle; loc0,loc1,loc2,l,a,b,c,d,e,f,g,h,i,selbst,m,k: Integer; farbwerte : array[1..10000] of Real; Punktetabelle: Array[1..10000] of Point; Farbe: Array[1..10000,1..6] of Real; Vektor:vector; Red,Green,Blue: Longint; Procedure analizegrid; Begin Loc0:=1; Loc1:=Pos('I',str); Loc2:=Pos('P',str); newStrIndex:=copy(str,Loc0,Loc1-2); newStrCol:=Copy(str,Loc1+2,Loc2-3-Loc1); i:=Str2Num(newStrIndex); End; Begin closepoly; Layer('Hilfspunkte'); Punkthandle:=FActlayer; str := GetName(FActLayer); setselect(Punkthandle); analizegrid; For k:=1 to 9999 DO Begin Layer('Hilfspunkte'); Punkthandle:=NextDObj(punkthandle); GetLocPt(Punkthandle,Punktetabelle[k].x,Punktetabelle[k].y); str:=Getname(Punkthandle); analizegrid; Farbwerte[k]:=Str2Num(newStrCol); Farbwerte[k]:=Trunc(Farbwerte[k]); If Farbwerte[k]<10000 Then Begin (***Farbwerte[k]:=60000;***) Farbe[k,1]:=7; End Else If Farbwerte[k]<20000 Then Begin (***Farbwerte[k]:=50000;***) Farbe[k,2]:=4; End Else If Farbwerte[k]<30000 Then Begin (***Farbwerte[k]:=40000;***) Farbe[k,3]:=2; End Else If Farbwerte[k]<40000 Then Begin (***Farbwerte[k]:=30000;***) Farbe[k,4]:=6; End Else If Farbwerte[k]<50000 Then Begin (***Farbwerte[k]:=50000;***) Farbe[k,5]:=3; End Else If Farbwerte[k]>50000 Then Begin (***Farbwerte[k]:=10000;***) Farbe[k,6]:=5; setselect(Punkthandle); Message(Farbe[k,6]); message(newstrindex,'_',Farbwerte[k],'-',Punktetabelle[k].x,'_',Punktetabelle[k].y); End; End; Dselectall; moveto(0,0); Layer('Bild'); For k:=1 To 6 Do Begin For m:=2 To 9998 Do Begin If ((Farbe[m,k]=7) or (Farbe[m,k]=5) or (Farbe[m,k]=2) or (Farbe[m,k]=4) or (Farbe[m,k]=6) or (Farbe[m,k]=3)) Then Begin closepoly; smooth(10); moveto(Punktetabelle[m].x,Punktetabelle[m].y); Fillpat(0); ColorIndexToRGB(Farbe[m,k],Red,Green,Blue); Fillback(Red,Green,Blue); Penfore(Red,Green,Blue); If Farbe[m,k]=7 Then Layer('Rot') Else If Farbe[m,k]=6 Then Layer('sechs') Else If Farbe[m,k]=3 Then Layer('drei') Else Moveto(Punktetabelle[m].x,Punktetabelle[m].y); Lineto(5+Punktetabelle[m].x,Punktetabelle[m].y+0); Hrotate(LnewObj,Punktetabelle[m].x,Punktetabelle[m].y,Farbe[m,k]*30); If Farbe[m,k]=2 Then Layer('vier'); If Farbe[m,k]=2 Then Begin Penfore(Red,Green,Blue); Moveto(Punktetabelle[m].x,Punktetabelle[m].y); Lineto(Punktetabelle[m].x+5,Punktetabelle[m].y); If Farbe[m+1,k]<>Farbe[m,k] Then Lineto(Punktetabelle[m].x,Punktetabelle[m].y+5); IF (Farbe[m,k])<>(Farbe[m-1,k]) Then Begin Moveto(Punktetabelle[m].x,Punktetabelle[m].y); Lineto(Punktetabelle[m].x,Punktetabelle[m].y+5) End; End; If Farbe[m,k]=4 Then Layer('vier'); If Farbe[m,k]=4 Then Begin Penfore(Red,Green,Blue); Moveto(Punktetabelle[m].x,Punktetabelle[m].y); Lineto(Punktetabelle[m].x+5,Punktetabelle[m].y); If Farbe[m+1,k]<>Farbe[m,k] Then Lineto(Punktetabelle[m].x,Punktetabelle[m].y+5); IF (Farbe[m,k])<>(Farbe[m-1,k]) Then Begin Moveto(Punktetabelle[m].x,Punktetabelle[m].y); Lineto(Punktetabelle[m].x,Punktetabelle[m].y+5) End; End; If Farbe[m,k]=5 Then Layer('Gelb'); If Farbe[m,k]=5 Then Begin Penfore(Red,Green,Blue); Moveto(Punktetabelle[m].x,Punktetabelle[m].y); Lineto(5+Punktetabelle[m].x,Punktetabelle[m].y+0); Hrotate(LnewObj,Punktetabelle[m].x,Punktetabelle[m].y,Farbe[m,k]*30+90); End; End; If k=1 Then Begin FillPat(255); Colorindextorgb(255,Red,Green,Blue); Layer('Hintergrund'); Penfore(Red,Green,Blue); Moveto(Punktetabelle[m].x,Punktetabelle[m].y); Lineto(Punktetabelle[m].x+5,Punktetabelle[m].y+0); Hrotate(LnewObj,Punktetabelle[m].x,Punktetabelle[m].y,Farbwerte[m]/1000); Lineto(Punktetabelle[m].x+5,Punktetabelle[m].y+0); Hrotate(LnewObj,Punktetabelle[m].x,Punktetabelle[m].y,Farbwerte[m]/1000+90); Lineto(Punktetabelle[m].x+5,Punktetabelle[m].y+0); Hrotate(LnewObj,Punktetabelle[m].x,Punktetabelle[m].y,Farbwerte[m]/1000+45); End; End; End; End; Run(klaus);-- NDSTobiasWendt - 21 Dec 2005
|
This website has been archived and is no longer maintained.