1. Trang chủ
  2. » Giáo Dục - Đào Tạo

HÌNH học TÍNH TOÁN (p2) (GIẢI THUẬT SLIDE) (chữ biến dạng do slide dùng font VNI times, tải về xem bình thường)

13 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 210,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xác định hai đoạn thẳng có cắt nhau không ª Bài toán Cho hai đoạn thẳng p1p2 và p3p4.. Hỏi: Hai đoạn thẳng có cắt nhau không?. Hai cách giải quyết để tìm tọa độ của điểm cắt nếu có.. C

Trang 1

HÌNH HỌC TÍNH TOÁN

Trang 2

Tính chất của đoạn thẳng

ª Định nghĩa

= (x1,y1) và p2 = (x2 ,y2) là một điểm p3 =

(x3 ,y3) sao cho

x3 = α x1 + (1 − α ) x2

y3 = α y1 + (1 − α ) y2

0 ≤ α ≤ 1 .

của p1 và p2 , ký hiệu đt p1p2

là p1 và p2

– Đoạn thẳng có hướng p1p2 là đoạn thẳng

p1p2 được định hướng từ p1 đến p2 , ký

hiệu p1p2 .

Trang 3

Tích chéo

ª Định nghĩa Tích chéo của hai vectors p1 = (x1,y1) và p2

= (x2 ,y2) là

ª Nhận xét

– Nếu p 1 × p 2 > 0 thì vectơ p 1 nằm theo chiều kim đồng hồ từ vectơ p 2 đối với (0, 0)

– Nếu p 1 × p 2 < 0 thì vectơ p 1 nằm ngược chiều kim đồng hồ từ vectơ p 2 đối với (0, 0)

– Nếu p 1 × p 2 = 0 thì O, p 1 và p 2 thẳng hàng.

p1

p2

(0,0)

p1

p2

(0,0)

1 2 2

1

2 1

2

1 2

y x y

x

y y

x

x p

p

=





=

×

Trang 4

Tích chéo (tiếp)

x

y

p1

p2

(0,0)

p

x

y

(0,0)

vectơ nằm ngược chiều

kim đồng hồ từ p

vectơ nằm theo chiều

kim đồng hồ từ p

p1 × p2 là diện tích của hình bình hành

Trang 5

Tích chéo (tiếp)

ª Nhận xét

Cho hai đoạn thẳng có hướng p0 →p1 và p0 →p2 Dùng

– Nếu (p1 p0) × (p2 p0) > 0 thì p0p1 nằm theo chiều kim đồng hồ từ p0p2

– Nếu (p1 p0) × (p2 p0) < 0 thì p0p1 nằm

ngược chiều kim đồng hồ từ p0p2 .

p0

p1

p2

p0

p1

p2

ngược chiều

kim đồng hồ

theo chiều kim đồng hồ

Trang 6

Xác định hai đoạn thẳng có cắt nhau

không

ª Bài toán

Cho hai đoạn thẳng p1p2 và p3p4 Hỏi: Hai đoạn

thẳng có cắt nhau không?

Hai cách giải quyết

để tìm tọa độ của điểm cắt (nếu có) Cách

giải này cần dùng phép chia nên không chính xác khi tử số gần bằng 0.

tới).

Trang 7

Xác định hai đoạn thẳng có cắt nhau

không (tiếp)

bên (“straddle”) một đường thẳng nếu p1

và p2 nằm ở hai bên khác nhau của

đường thẳng (Trường hợp biên: p1 hay p2

nằm trên đường thẳng.) p2

p1

p2

p1

đt p1p2 nằm hai bên

đường thẳng L

đt p1p2 không nằm hai bên

đường thẳng L

p2

p1

L

Trang 8

Xác định hai đoạn thẳng có cắt nhau

không (tiếp)

– Định lý: Hai đoạn thẳng cắt nhau nếu và

chỉ nếu một trong các điều kiện sau

(hoặc cả hai) là đúng.

chứa đoạn thẳng kia.

thẳng này nằm trên đoạn thẳng kia

a

b Đoạn thẳng a nằm hai

bên đường thẳng chứa b, và đoạn thẳng b nằm hai bên đường thẳng chứa a

Trang 9

Xác định hai đoạn thẳng có cắt nhau

không (tiếp)

p2

p1

p3

p4

(p4 − p1) × (p2 − p1) > 0

(p3 − p1) × (p2 − p1) < 0

p4

p1

p3

p2

(p4 − p1) × (p2 − p1) < 0

(p3 − p1) × (p2 − p1) < 0

Các tích chéo (p3 − p1) ×

(p2 − p1) và (p4 − p1) × (p2 −

p1) có dấu khác nhau,

do đó đt p3 p4 nằmhai bên đường thẳng chứa

đt p1 p2 (và ngược lại)

Các tích chéo (p3 − p1) ×

(p2 − p1) và (p4 − p1) × (p2 −

p1) có cùng dấu, do đó

đt p3 p4 khôngnằmhai bên đường thẳng chứa

đt p1 p2 (và ngược lại) Dùng tích chéo để xác định một đoạn thẳng có nằm hai bên một đường thẳng hay không

Trang 10

Xác định hai đoạn thẳng có cắt nhau

không (tiếp)

p1

p3

p4

p2

(p4 − p1) × (p2 − p1) = 0

(p3 − p1) × (p2 − p1) < 0

(p4 − p1) × (p2 − p1) = 0

(p3 − p1) × (p2 − p1) = 0

p1

p3 p2

p4

p1

p2

p3

p4

Trang 11

Xác định hai đoạn thẳng có cắt nhau

không (tiếp)

và p3p4 có cắt nhau không (mã giả) Thủ tục trả về TRUE nếu hai đoạn thẳng cắt

nhau và trả về FALSE nếu chúng không

cắt nhau.

SEGMENTS-INTERSECT(p1, p2, p3, p4)

1 d1 ← DIRECTION(p3, p4,p1)

2 d2 ← DIRECTION(p3, p4,p2)

3 d3 ← DIRECTION(p1, p2, p3)

4 d4 ← DIRECTION(p1, p2, p4)

5 if ((d1 > 0 and d2 < 0) or (d1 < 0 and d2 > 0)) and

((d3 > 0 and d4 < 0) or (d3 < 0 and d4 > 0))

6 then return TRUE

(xem tiếp slide tới)

Trang 12

Xác định hai đoạn thẳng có cắt nhau

không (tiếp)

(tiếp)

7 elseif d1 = 0 and ON-SEGMENT(p3, p4,p1)

8 then return TRUE

9 elseif d2 = 0 and ON-SEGMENT(p3, p4,p2)

10 then return TRUE

11 elseif d3 = 0 and ON-SEGMENT(p1, p2, p3)

12 then return TRUE

13 elseif d4 = 0 and ON-SEGMENT(p1, p2, p4)

14 then return TRUE

Trang 13

Xác định hai đoạn thẳng có cắt nhau

không (tiếp)

đoạn pi pj

FALSE nếu pk nằm ngoài đoạn pi pj

DIRECTION(p i , p j , p k )

1 return (p k p i ) × (p j p i )

ON-SEGMENT(p i , p j , p k )

1 if min(x i , x j ) ≤ x k max(x i , x j ) and min(y i , y j ) ≤ y k

max(y i , y j )

Ngày đăng: 29/03/2021, 08:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm