Beiträge von Stampi

    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.

    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.

    informatik-forum.net/attachment/12322/

    informatik-forum.net/attachment/12323/

    Mit freundlichen Grüßen