Title | Info 2 Stichpunkt Zusammenfassung |
---|---|
Author | Siyi Chen |
Course | Bau- und Umweltinformatik 2 |
Institution | Technische Universität München |
Pages | 14 |
File Size | 450 KB |
File Type | |
Total Downloads | 69 |
Total Views | 147 |
Quelle aus Übungen , thematische kategorisiert , selbst zusammengefasst...
close all! ! clear all! ! clc! ! ! a=input(’F’,’s’)! fprintf() !
!
disp()! %f! %s! %i! %d!
! ! ! ! !
! ! ! ! !
:!
!
!
zeros( )!! rand( )! !
! !
Schließt alle vom Programm geöffneten Fenster# Löschung aller alten Variablen# Löscht alle Einträge im Command Window# Lesen von Eingabeparameter# a=input( ‘Frage:Y/N’,’s’ )! # If a == ‘string’!# gibt das Ergebnis aus # fprintf ( ‘Es gibt %d Personen. \n’,n)# gibt das Ergebnis aus# Gleitkommazahl 1.23# Text omg# Ganze Zahl 42# Dezimalzahl 1.2300000e+00# Colon erstellt automatisiert einen Vektor mit äquidistant Werten # a = 1 : 3 = [1 2 3 ] a = 1 : 2 :7 = [ 1 3 5 7 ]# erstellt eine mit Nullen vorbelegte Matrix# erstellt eine mit Zufallszahlen vorbelegte Matrix, Werte von 0 bis 1#
ones( )!! ! eye( )! ! ! A(Z,S)! ! ! length(v)! ! [n , m]=size(A)!! n=size(A,1)! ! m=size(A,2)! ! v(end+1)! ! a*b‘! ! ! a.*b! ! ! plot(x,y,[Format])! surf()! ! ! legend(‘f1‘,‘f2‘)!
erstellt eine mit Einsen vorbelegte Matrix# erstellt eine Einheitsmatrix# Elementzugriff# Größe von Vektor v# Größe von Matrix A# Zeilengröße von Matrix A# Spaltengröße von Matrix A# Elemente anhängen# Skalarprodukt# Komponentenweise Operation# Graphische Darstellungen in 1D# Graphische Darstellungen in 3D# Beschriftet Graphen#
!
{‘what’,2,[2,3]}#
!
!
Linientyp (linestyle) ‘-‘! ! ! ‘- -‘! ! ! ‘:‘! ! ! ‘-.‘! ! !
Durchgezogenen Linie# Gestrichelte Linie! ! Gepunktete Linie# Stichpunktierte Linie#
#
Markierungen (marker) ‘o‘! ! ! Kreis# ‘*‘! ! ! Stern# ‘s‘! ! ! Quadrat#
Farbe (color) r! ! g! ! b! ! k! ! [r,g,b]! !
! ! ! ! !
rot# grün# blau# schwarz# RGB Farbcode#
plot(x, y, ’--bd’)!
!
gestrichelte Linie in blau und Rauten als Markierungen#
num2str(n)! ! Deg2rad(n)# addpath(n)! ! genpath(n)! ! restoredefaultpath!
Wandelt Zahlenwerte in Zeichenkette um# Externe Ordner hinzufügen # Unterordner hinzufügen # MATLAB Pfad zurücksetzen#
addpath(genpath(‘../subfolder’))#
Fehlerbehandlung # F5 Debugging # F10 Einzelschritt# F11 springt in eine Funktion #
# Bubble Sort Komplexität n2.
Merge Sort
idmeger
idlef t
idright
Va llef t
Va llef t
1
1
1
2
1
2
1
2
2
6
3
2
2
5
6
4
3
2
5
6
5 Merge Sort 1 , 2 , 5 , 5 , 6#
2
6
Binäre Suche
K X Schlüssel Links rechts mittel sind Index
Loglog
Inzidenzmatrix 1! Ausgangsmenge# -1 ! Eingangsmenge# 0! keine Verbindung# Algorithmus von Dijkstra A B Delta
V
Delta
V
Delta
0
-
∞
∞ 2
2
C
B
B
0
-
D V
Delta
E V
∞
Delta
F V
Delta
∞
∞ 5
B
3
A
3
A
4
B
6
B
∞
4
B
6
B
9
A
4
B
6
B
8
F
5
C
8
F
7
D
C
7
D
!
Ph = [PxPy1]#
4
B
5
Transformationen Translation !
P′ =
Px dx # + (Py) (d y)
Skalierung !
P′ =
Px sx 0 * # (Py) ( 0 s y)
Rotation!
P′ =
cos(a) −sin(a) # ( sin(a) cos(a) )
Homogene Koordination! Rechenvorschrift!
!
Translation!
!
!
Skalierung!
!
!
Rotation !
!
!
P = [PxPy]! ! P′ = P*T# 1 0 0 T= 0 1 0 # dx d y 1 2D:
sx 0 T = 0 sy 0 0 cos(a) T = −sin(a) 0
0 0 # 1 sin(a) 0 cos(a) 0 # 0 1
V
Ablauf:# 1. Homogene Erweiterung !
!
Spiegelung um X-Achse!
!
T=
Spiegelung um Y-Achse!
!
P → Ph# 2. Transformationsmatrix berechnen ! T# P′h = Ph*T# 3. Transformation durchführen !! 4. Koordinaten zurückführen ! ! P′h → P′# 1 0 0 −1 ( 0 0 −1 0 T= 0 1 ( 0 0
0 0 # 1) 0 0 # 1)
Verkettete Transformationen – Rotation um beliebigen Punkt C# 1. Verschiebung in den Ursprung# 2. Rotation um den Ursprung # 3. Verschiebung zurück# Verkettete Transformation – Spiegeln an beliebiger Achse # 1. Verschiebung der Achse in den Ursprung # 2. Spiegelachse auf die x-Achse drehen # 3. Spiegeln an x-Achse# 4. Spiegelachse „zurück“ drehen # 5. Verschiebung der Achse aus dem Ursprung #
x n Matrix = n 3# Matrix – Vektor – Multiplikation von einen n x n Matrix mit einem n Vektor = n 2# Matrix – Matrix – Multiplikation von 2 n
Einzeltransformationsmtx # n3 x 3 x 1000 = 9 x 3 x 1000 = 27000# Gesamttransformationmtx # n3 x 2 + n2 x 1000 = 27 x 2 + 9 x 1000 =9054#
Kurvendarstellung# Explizit!!
Implizit #
y = f (x)
Parametrisch !
F(x, y) = 0
r (t) =
Analytische Analytische Jede Steigung m möglich Bestimmung ,ob ein Punkt Bestimmung ,ob ein Punkt Große Auswahl an Kurve auf der Kurve liegt auf der Kurve liegt
Vorteile
Nur 1 y Wert zu judem x
Mehr y Werte als Iterative (und damit teure) erwünscht Suche ,ob Punkt auf Kurve Sehr begrenzte Anzahl an liegt Kurven
Nachteile Sehr begrenzte Anzahl an Kurven
dx
Tangentenvektor allgemein! T(t)
=
dt
#
dy dt dy
Normalenvektor allgemein!
N(t) =
−d dx
t
#
dt
Tangente im Punkt ! !
x′(t0) x(t) x(t) # + t* = (y(t)) (y(t)) ( y′(t )) 0
Normale im Punkt !
x (t) y(t)
!
x (t 0) y′(t0) x(t) −t # = + ( )* (y(t)) ( y t ) t (x′(t )) ( ) 0
# Ellipse # ( x - m1 )2/a2 + ( x - m2 )2/b2 - 1 = 0# x = a cos ( t )# y = b sint ( t )#
0
Formfunktionen# Lineare Formfunktionen#
1 (1 − t)# 2 1 N1,2 = (1 + t) # • 2 x1 x2 x(t) • Resultierende Interpolationskurve = [y(t)] = N1,1(t )*[y ] + N1,2(t )*[y ] # 1 2 N1,1 =
•
Quadratische Formfunktionen#
• • •
t −1 # 2 N2,2 (t) = (t − 1)(t + 1)# t +1 N2,3(t) = t* # 2 N2,1(t) = t*
•
Resultierende Interpolationskurve =
x2 x3 x1 x(t) = N2,1(t )* y + N2,2(t )* y + N2,3(t )* y # [ 2] [ 3] [y(t)] [ 1] Kubische Formfunktionen# • • • • Lagrange Polynome#
•
9 1 1 *(t − 1)# * t− t+ 3) 3) ( 16 ( 1 27 (t − 1)# (t + 1) t − N3,2 (t) = ( 3) 16 1 27 (t − 1)# (t + 1) t + N3,3(t) = − ( 3) 16 1 1 9 (t + 1)(t + )(t − )# N3,4 (t) = 3 16 3 N3,1(t) = −
p+1
Np,i(t) =
∏ ri − rj j=1 j≠I 3
•
N2,1(t) =
t − rj
t − rj
∏ ri − rj j=2
#
=
t − r2 t − r3 # * r1 − r2 r1 − r3
Näherung der Kurve # 1. Parameterraum zerteilen# θi = θstart + ∆ θ # 2. Für jedes θj , berechne die Koordinaten#
r=
[ y(θi)] x(θi)
=
Klothoide # • • Numerische Integration# • • Reihenentwicklung # •
Mx cos(θi) # + R* (My) [sin(θi) ] t0
π 2 t dt # (2 ) ∫0 t0 π y(ti) = A* π* sin( t 2 )dt# ∫0 2 x(ti) = A* π*
cos
π 2 x(ti) = x(ti−1) + A* π* ∆ t*cos( ti−1 )# 2 n π cos( ti2)# x(t) = A* π* ∆ t* ∑ 2 i=1 t 4i+1 (−1)i * x(t) = A* π ∑ # (2i )! ( 4i + 1 ) i=0 p
t 4i+1 (−1)i # * y(t) = A* π ∑ (2i + 1)! 4i + 3 ( ) i=0 p
•
Trassierung am Ursprung # 1. Kreis im Ursprung# θ1 = − a − θ #
θ2 = − a# 2. Klothoide #
π − (a + θ )# 2 a = r* 2*τ # a # tend = π*r τ=
l = a* π*tend # 3. Klothoide verschieben# dx = Bx − Ax!! d y = By − Ay!!
!
!
A = Ende von Klothoide#
!
!
B = Anfang von Kreis#
4. Teilkurven zusammenfügen # 5. Kurve auf Abszisse verschieben# dx = 0 #
d y = − Cy # C = K loth oidebeit0# 6. Kurve auf Winkelhalbierende verschieben# D = letzter Punkt der zusammengesetzten Kurve# h = Dy # h # tan(a) dx2 = Dx# dx = − (dx1 + dx2)# d y = 0# dx1 =
7. Kurve spiegeln #
−cos(a) # [ sin(a) ] w = [P1P 2]#
P2 =
8. Teilkurven zusammenfügen#
Vollständige Trassenkurve# 1. Bestimmung des Öffnungswinkels# La = A − B #
Lb = C − B # (La*Lb) = La * Lb *cos(2a)# a=
1 *cos−1 2
(La*Lb ) La * Lb
#
cos−1 = acos# (La*Lb) = a′*b # La = n orm (a) # 2. Trassenkurve im Ursprung#
3. Rotation um den Ursprung# ata n2 ∈ [−π, π] #
β = ata n2(a y , ax)# γ = π − β# ➔ Rechtskurve Rotation mit −γ im UZS # ➔ Linkskurve Rotation mit γ # 4. Verschiebung aus dem Ursprung# dx = Bx#
d y = By# B = P unkta nderÖf f nungs wink el# 5. Spiegelung bei Rechtskurven#
1 Ax Ay F = 0,5* 1 Bx By # 1 Cx Cy = Rechtskurve# F 0!! T = Rotation*Verschiebung*(Spiegelu ngbeiRechtskur ve)#
round ( n )!
!
Runden zur nächsten ganzen Zahl#
ceil ( n )!
!
Aufrunden#
floor ( n )!
Abrunden#
linspace (a,b,n)!
Erzeugt äquidistant verteile Zahlenwerte#
logspace (a,b,n)!
Erzeugt logarithmisch verteile Zahlenwerte #
loglog ()!
!
Doppellogarithmischen Darstellung #
tic! ! T( i ) = toc!
! !
beginne Zeitmessung# beende Zeitmessung#
disp ( n )!
!
Darstellen von Matrizen in Konsole #
save ( filename ) load ( filename )! gcf ()! ! !
Speichert Variable# Lädt Variable# Referenz zur momentan aktiven MATLAB Figure#
imread(‘filename’)! image(‘filename’)!
Lädt Bilddatei# Visualisiert Bilddatei#
clf! ! ! text(x,y, ‘txt’ )! !
löscht Inhalt aus MATLAB Figure# schreibt Text in MATLAB Figure#
norm (n)!
Berechnung der Euklidischen Norm#
!
norm ( n ) =sqrt( 1x1 + 1x1 + 1x1 ) = sqrt(3)# nargin !
!
Auskunft über die Anzahl der übergebenen Parameter#
figure ()! axis on!! axis equal! grid on!! ginput(n)!
! ! ! ! !
Öffnet neues MATLAB-Fenster# blendet Achsen ein# skaliert x- und y-Achse gleich# blendet Gitter ein# Graphische Koordinateneingabe durch Benutzer #
Axis equal # Axis on , grid on
Achse einschalten #
vertexPositions ( end +1 , : ) = [x,y]#
vertexPositions(vertexIdToDelete) = [ ]#
3. Datenstruktur anlegen # —adjacenyMatrix = [ ];# —vertexPositions = [ ];# 4. Option wählen # — option = input (‘Choose ur option’,’s’) #
5.überprüfen xxx#
6.Erstellen Sie x y in [0,4] und [0,4]# Axis ( [ 0 4 0 4] )#
7.Erweitern Sie wie in der Vorlesung besprochen die übergebenen Koordinaten auf homogene Koordinaten# —numberofVertices = size ( vertices ,1 )# —homogeneCoordinates = [ vertices, ones (numberofVertices ,1) ]#
—# numberOfPoints = size (A,1)# pMirrowedTrackreversed = zeros (numerofPoints ,2 )# For i = 1 : numberOfPoints # pMirrowedTrackreversed (i , : ) = A( numberOfpoints-i+1,: )# End#
A=[B;...