Danke,
Problem ist gelöst.
Der Fehler lag bei der Klammernsetzung da 4th Dimension "Punkt vor Strich" nicht kennt.
Danke,
Problem ist gelöst.
Der Fehler lag bei der Klammernsetzung da 4th Dimension "Punkt vor Strich" nicht kennt.
Habs jetzt ausprobiert, dass erst kurz bevor gezeichnet wird erst Integer verwendet wird, ändert sich jedoch nicht wirklich etwas.
Ok, dankeschön.
Werd ich dann mal ausprobieren
Programmiersprache ist
4th Dimension
C_REAL($1;$2)
C_REAL($ges)
C_INTEGER($laenge;$breite;$links;$oben;$3)
$CTOffscr:=CT New offscreen area
CT SET DOCUMENT SIZE ($CTOffscr;300;350)
$ges:=$1+$2
$laenge:=(150/$ges)*$1
$breite:=(150/$ges)*$2
$links:=(150-$laenge)/2
$oben:=(150-$breite)/2
ARRAY INTEGER(koord;8)
koord:=PROJ_AssistentWinkelVersch ($links;$oben;$links+$laenge;$oben;$links+$laenge;$oben+$breite;$links;$oben+$breite;$3)
ARRAY INTEGER(koordX;5)
ARRAY INTEGER(koordY;5)
For ($i;1;8)
koord{$i}:=koord{$i}+150
End for
koordX{1}:=koord{1}
koordX{2}:=koord{3}
koordX{3}:=koord{5}
koordX{4}:=koord{7}
koordY{1}:=koord{2}
koordY{2}:=koord{4}
koordY{3}:=koord{6}
koordY{4}:=koord{8}
koordX{5}:=koordX{1}
koordY{5}:=koordY{1}
$0:=CT Array to polygon ($CTOffscr;koordX;koordY)
$pict:=CT Area to picture ($CTOffscr;-2)
[Projekt];"ProjektAssistent"PictFormLage:=$pict
CT DELETE OFFSCREEN AREA ($CTOffscr)
Also das ist der Code, der die ursprünglichen Koordinaten in die neuen Koordinaten umwandelt.
`$1...x1
`$2...y1
`$3...x2
`$4...y2
`$5...x3
`$6...y3
`$7...x4
`$8...y4
`$9...Winkelverschiebung um alpha(-180°-180°)
C_INTEGER($1;$2;$3;$4;$5;$6;$7;$8;$9)
C_INTEGER($x_1;$x_2;$x_3;$x_4;$y_1;$y_2;$y_3;$y_4)
C_INTEGER($M_x;$M_y)
C_INTEGER($x1;$x2;$x3;$x4;$y1;$y2;$y3;$y4)
C_REAL($alpha)
$alpha:=$9*Degree
If (($alpha=0) | ($9=180) | ($9=(-180)))
$x_1:=$1
$y_1:=$2
$x_2:=$3
$y_2:=$4
$x_3:=$5
$y_3:=$6
$x_4:=$7
$y_4:=$8
Else
If ($9<0)
$x_1:=$1*Cos($alpha)-$2*Sin($alpha)
$x_2:=$3*Cos($alpha)-$4*Sin($alpha)
$x_3:=$5*Cos($alpha)-$6*Sin($alpha)
$x_4:=$7*Cos($alpha)-$8*Sin($alpha)
$y_1:=$1*Sin($alpha)+$2*Cos($alpha)
$y_2:=$3*Sin($alpha)+$4*Cos($alpha)
$y_3:=$5*Sin($alpha)+$6*Cos($alpha)
$y_4:=$7*Sin($alpha)+$8*Cos($alpha)
Else
$alpha:=$alpha*(-1)
$x_1:=$1*Cos($alpha)-$2*Sin($alpha)
$x_2:=$3*Cos($alpha)-$4*Sin($alpha)
$x_3:=$5*Cos($alpha)-$6*Sin($alpha)
$x_4:=$7*Cos($alpha)-$8*Sin($alpha)
$y_1:=$1*Sin($alpha)+$2*Cos($alpha)
$y_2:=$3*Sin($alpha)+$4*Cos($alpha)
$y_3:=$5*Sin($alpha)+$6*Cos($alpha)
$y_4:=$7*Sin($alpha)+$8*Cos($alpha)
End if
End if
ARRAY INTEGER(koord;8)
koord{1}:=$x_1
koord{2}:=$y_1
koord{3}:=$x_2
koord{4}:=$y_2
koord{5}:=$x_3
koord{6}:=$y_3
koord{7}:=$x_4
koord{8}:=$y_4
$0:=koord
Ich weiß nicht, haber aber alles genau kontrolliert, doch es wird immer verzerrt dargestellt, habe mir eh schon viele Anleitungen über Matrizen und so durchgelesen, doch ich habe es bis jetzt noch nicht so hinbekommen.
Danke, für deine bisherigen Antworten.
Hallo!
Ja so in der Richtungen, hatte ich es ja auch nur dann sieht die Darstellung im Programm wie folgt aus und nicht wie sie tatsächlich sein soll.
Ich arbeite an einem bauphysikalischen Programm zur Berechnung des Heizwärmebedarfs von Gebäuden. Das Hauptproblem liegt bei mir darin, dass in einer kleinen Vorschauskizze die rechteckige Grundfläche eines Hauses (a, b) im richtigen Verhältnis gezeichnet werden soll. Dadurch, dass ein Computerbildschirm in einzelne Bildpunkte geteilt ist, kann man sich das ganze als Kartesisches Koordinatensystem vorstellen. Die Vorschau mit einem normalen Rechteck funktioniert bereits jedoch habe ich ein Problem damit, dass man auch einen Winkel alpha festlegen kann, der die Abweichung des Grundstückes von Norden angibt, sprich das Rechteck soll im Koordinatensystem entsprechend dem Winkel alpha gedreht werden. Das Problem, dass ich jetzt habe, ist, dass ich nicht genau weiß wie ich die Koordinaten der Punkte (A, B, C, D) des gedrehten Rechteckes ermitteln kann. Ich habe zwar schon probiert, das Problem mit Vektoren bzw. Matrizen zu lösen, bis jetzt aber ohne Erfolg.
Mit freundlichen Grüßen