Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
PRZESTRZEŃ 2D
PRZESTRZEŃ 2D
Komputerowe Wspomaganie
Komputerowe Wspomaganie
Projektowania
Projektowania
x’
y’
Lokalny układ
współrzędnych
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
Układ współrzędnych
Układ współrzędnych
x
y
0,0
x
1
y
1
P
)
sin(
)
cos(
1
1
y
x
1
1
, y
x
P
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
Transformacja przestrzeni 2D
Przesunięcie
Transformacja przestrzeni 2D
Przesunięcie
x
y
0,0
tx
ty
x’
y’
ty
yp
yp
tx
xp
xp
'
'
P
xp’
xp
yp
yp’
P’
x
y
0,0
x
1
y
1
P
x’
y’
xp’
yp’
)
sin(
)
cos(
'
)
cos(
)
sin(
'
1
1
1
1
x
y
yp
y
x
xp
Transformacja przestrzeni 2D
Obrót
Transformacja przestrzeni 2D
Obrót
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
x
y
0,0
x
1
y
1
P
xp’
yp’
sy
y
yp
sx
x
xp
1
1
'
'
Transformacja przestrzeni 2D
Skalowanie
Transformacja przestrzeni 2D
Skalowanie
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
P’
Reprezentacja macierzowa
Operatory transformacji
Reprezentacja macierzowa
Operatory transformacji
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
1
1
'
'
y
x
y
x
W
1
0
0
1
0
0
1
ty
tx
T
1
0
0
0
cos
sin
0
sin
cos
R
1
0
0
0
0
0
0
sy
sx
S
S
R
T
W
x
y
0,0
x
2
y
2
P2
x
1
y
1
1
2
1
2
'
'
y
y
y
x
x
x
Odcinek P1 – P2
Reprezentacja wektorowa
Odcinek P1 – P2
Reprezentacja wektorowa
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
P1
wektor bazowy
wektor kierunkowy
x’
y’
'
'
arctan
x
y
Problem:
Problem:
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
S
x
y
0,0
r
P
C
Wyznacz punkt styczności
S
prostej poprowadzonej z punktu P
do okręgu o promieniu „r” i środku w punkcie C
Przesuń układ do punktu C
Przesuń układ do punktu C
Wyznacz P w nowym układzie
Wyznacz P w nowym układzie
Wyznacz wektor kierunkowy CP
Wyznacz wektor kierunkowy CP
Oblicz kąt ALFA
Oblicz kąt ALFA
Obróć układ o kąt ALFA
Obróć układ o kąt ALFA
Wyznacz P w nowym układzie
Wyznacz P w nowym układzie
Problem c.d.
Problem c.d.
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
p
x
r
cos
x’’
y’’
r
P’’
C
S’’
x
p
x
s
y
s
p
s
x
r
r
r
x
cos
2
2
s
s
x
r
y
s
s
y
x
S
,
''
Obróć układ o kąt -ALFA
Obróć układ o kąt -ALFA
Obliczyć S w nowym układzie
Obliczyć S w nowym układzie
Przesuń układ do punktu (0, 0)
Przesuń układ do punktu (0, 0)
Obliczyć S w nowym układzie
Obliczyć S w nowym układzie
Problem:
Problem:
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
K
x
y
0,0
P2
P1
Wyznacz punkt
L
będący lustrzanym odbiciem punktu K
względem prostej P1- P2
Przesuń układ do punktu P1
Przesuń układ do punktu P1
Wyznacz K w nowym układzie
Wyznacz K w nowym układzie
Wyznacz wektor kierunkowy P1-P2
Wyznacz wektor kierunkowy P1-P2
Oblicz kąt ALFA
Oblicz kąt ALFA
Obróć układ o kąt ALFA
Obróć układ o kąt ALFA
L
Wyznacz K w nowym układzie
Wyznacz K w nowym układzie
Problem c.d.
Problem c.d.
Katedra Konstrukcji i Eksploatacji
Katedra Konstrukcji i Eksploatacji
Maszyn
Maszyn
l
l
y
x
L
,
''
Obróć układ o kąt -ALFA
Obróć układ o kąt -ALFA
Obliczyć L w nowym układzie
Obliczyć L w nowym układzie
Przesuń układ do punktu (0, 0)
Przesuń układ do punktu (0, 0)
Obliczyć L w nowym układzie
Obliczyć L w nowym układzie
x’’
y’’
P2
P1
L
x
l
=
x
k
y
l
=
-y
k
K
AutoLISP
Transformacje punktu
AutoLISP
Transformacje punktu
(defun POINT (x y) (list x y
0))
(defun POINT (x y) (list x y
0))
(defun TRANS (P tx ty)
(POINT (- (car P) tx)(- (cadr P)
ty))
)
(defun TRANS (P tx ty)
(POINT (- (car P) tx)(- (cadr P)
ty))
)
(defun ROTATE (P alfa / x y s c)
(setq x (car P) y (cadr P))
(setq s (sin alfa) c (cos alfa))
(POINT(+ (* x s)(* y c))(- (* y c)(* x s)))
)
(defun ROTATE (P alfa / x y s c)
(setq x (car P) y (cadr P))
(setq s (sin alfa) c (cos alfa))
(POINT(+ (* x s)(* y c))(- (* y c)(* x s)))
)
(defun SCALE (P sx sy)
(POINT(* (car P) sx)(* (cadr P)
sy))
)
(defun SCALE (P sx sy)
(POINT(* (car P) sx)(* (cadr P)
sy))
)
AutoLISP
Transformacje listy
AutoLISP
Transformacje listy
(defun TRANSLIST (lista tx ty / ans
m)
(foreach m lista
(setq m (TRANS m tx ty))
(setq ans (append ans (list m)))
)
(eval ‘ans))
(defun TRANSLIST (lista tx ty / ans
m)
(foreach m lista
(setq m (TRANS m tx ty))
(setq ans (append ans (list m)))
)
(eval ‘ans))
(defun ROTATELIST (lista alfa /
ans m)
(foreach m lista
(setq m (ROTATE m alfa))
(setq ans (append ans (list m)))
)
(eval ‘ans))
(defun ROTATELIST (lista alfa /
ans m)
(foreach m lista
(setq m (ROTATE m alfa))
(setq ans (append ans (list m)))
)
(eval ‘ans))
(defun SCALELIST (lista sx sy / ans
m)
(foreach m lista
(setq m (SCALE m sx sy))
(setq ans (append ans (list m)))
)
(eval ‘ans))
(defun SCALELIST (lista sx sy / ans
m)
(foreach m lista
(setq m (SCALE m sx sy))
(setq ans (append ans (list m)))
)
(eval ‘ans))