![]() |
|
![]()
![]() | 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 BACK TRANSLATING IMAGES __________________________________________________________________________________________________________________________ ![]() ![]() ![]() ![]() ![]() ![]() PROCEDURE XML2VW_v1; TYPE ImageData=STRUCTURE value: REAL; x:REAL; y:REAL; END; VAR currentCell:HANDLE; _tag,_data:STRING; _flag,id:INTEGER; r,x,y,v1,value:REAL; _fileName:ARRAY[0..4] OF STRING; objectHand, recordHand, wallHand : HANDLE; objectName : STRING; col : REAL; rot,gruen,blau:LONGINT; xmax,ymax: REAL; k,i,j:INTEGER; radius:REAL; ovalArray: ARRAY[0..2000] OF ImageData; Radi: ARRAY[0..5000,0..4] OF REAL; Values: ARRAY[0..5000,0..4] OF REAL; idmax: INTEGER; PROCEDURE readData(VAR _dData,_dTag:STRING;VAR _OCFlag:INTEGER); VAR _rString:STRING; _rChar:CHAR; _f1:INTEGER; BEGIN {setzen der Variablen in den Grundzustand} _f1:=0; _OCFlag:=0; _dData:=''; {Name/Art der Wertebezeichnung aus dem XML} _rString:=''; _dTag:=''; {Wert/Daten aus dem XML} WHILE ((_f1=0) AND (NOT EOF(_fileName[k]))) DO BEGIN Read(_rChar); IF _rChar='/' THEN BEGIN IF _OCFlag=1 THEN _OCFlag:=2; _rString:=''; END ELSE BEGIN IF _rChar='<' THEN BEGIN _OCFLag:=1; _dData:=_rString; _rString:=''; END ELSE BEGIN IF _rChar='>' THEN BEGIN _dTag:=_rString; _f1:=1; END ELSE BEGIN _rString:=Concat(_rString,_rChar); END; END; END; END; IF EOF(_fileName[k]) THEN _dTag:='xx'; END; BEGIN GetFile(_fileName[1]); GetFile(_fileName[2]); GetFile(_fileName[3]); GetFile(_fileName[4]); FOR k:=1 TO 4 DO BEGIN Open(_fileName[k]); WHILE _tag<>'xx' DO BEGIN readData(_data,_tag,_flag); IF (_flag=2) THEN BEGIN IF _tag='CELL' THEN BEGIN if (id > idmax) THEN idmax := id; values[id,k]:=value; ovalArray[id].x:=x; ovalArray[id].y:=y; END; IF _tag='ID' THEN BEGIN id := Str2Num(_data); END; IF _tag='VALUE' THEN BEGIN value := Str2Num(_data); END; IF _tag='X' THEN BEGIN x := Str2Num(_data)*5; END; IF _tag='Y' THEN BEGIN y := Str2Num(_data)*(-5); END; END; IF(_flag=1) THEN BEGIN END; message(id); END; _tag:=''; Close(_fileName[k]); END; FOR i:= 0 TO idmax DO BEGIN Radius:=0; FOR j:= 4 DOWNTO 1 DO BEGIN Radius:= Radius + Values[i,j]*0.9; Radi[i,j]:=Radius; END; FOR j:= 1 TO 4 DO BEGIN oval(ovalArray[i].x-Radi[i,j],ovalArray[i].y-Radi[i,j],ovalArray[i].x+Radi[i,j],ovalArray[i].y+Radi[i,j]); objectHand:=LNewObj; CASE j of 1:ColorIndexToRGB(36,rot,gruen,blau); {cyan} 2:ColorIndexToRGB(12,rot,gruen,blau); {magenta} 3:ColorIndexToRGB(5,rot,gruen,blau); {gelb} 4:ColorIndexToRGB(255,rot,gruen,blau); END; SetFillBack(objectHand,rot,gruen,blau); END; END; END; RUN(XML2VW_v1);DOWNLOAD: PowerPointrait.zip -- NDSMatthiasZaeh - 21 Dec 2005
|
This website has been archived and is no longer maintained.