Kvant
Khác

Máy tính của trường vẽ một vòng tròn

Щёголев А. Г.

Bản dịch tự động sơ bộ, chất lượng thấp: có thể còn lỗi và câu chữ chưa tự nhiên. Bản này sẽ được thay bằng bản dịch tốt hơn. Bản gốc →

56

Máy tính của trường vẽ một vòng tròn

A. G. SHEGOLEV

Trong số trước «Kvant» chúng ta đã nói một chút về khả năng đồ họa của máy tính trường học Yamaha (và ngôn ngữ MSX - BASIC), vẽ ra những bức tranh đẹp - hay nói đúng hơn là các thuật toán được biên soạn để thực hiện những hình này. Lần này chúng ta sẽ chứng minh khả năng đồ họa của máy móc với cấu trúc lời giải hình học bài toán. Chúng tôi sẽ giới hạn việc phân tích chỉ một bài toán, nhưng phân tích này sẽ rất chi tiết; nó dựa trên các nguyên tắc lập trình hệ thống (xem «Kvant», 1987, số 10, 11). Vì vậy, bài toán: Vẽ một đường tròn đi qua ba điểm với các thuộc tính tọa độ.

Về bản chất, bạn bài toán về việc dựng một đường tròn ngoại tiếp một hình tam giác. Việc xây dựng này có thể được thực hiện một cách duy nhất nếu ba điểm khác nhau và không nằm trên cùng một đường thẳng.

Chúng ta hãy tiến hành xây dựng một cách có hệ thống hoàn chỉnh thuật toán và chương trình.

Hãy dựng đường tròn đi qua ba điểm.
Tọa độ của điểm đầu tiên
Tọa độ của điểm thứ hai
Tọa độ của điểm thứ ba

Một vòng tròn không thể được vẽ qua những điểm này (và đây là cách duy nhất!)!

Hình 1.

57

Dàn dựng:
Cho: (x1,y1)(x_1, y_1) — tọa độ của các điểm A,B,CA, B, C.
Bắt buộc: σ\sigma - hình ảnh của một vòng tròn (hoặc một phần của vòng tròn nằm trong màn hình).
Khi: A,B,CA, B, C không nằm trên cùng một đường thẳng.
Liên hệ: A∈σ,B∈σ,C∈σA \in \sigma, B \in \sigma, C \in \sigma.

Kịch bản:
Trên hình 1, các vòng tròn màu xanh lam chứa các thành phần có thể thay đổi của cuộc đối thoại trong tương lai - những con số cụ thể được một người trong đáp số báo cáo theo yêu cầu của máy tính. Các hình trong ngoặc chứa hai phiên bản của máy tính: phiên bản đầu tiên sẽ được nhìn thấy nếu các điểm có tọa độ đã cho nằm trên cùng một đường thẳng, phiên bản thứ hai - nếu tọa độ của các điểm thỏa mãn công thức; trong trường hợp sau này, màn hình sẽ hiển thị điểm A,B,CA, B, C với tọa độ đã cho và một vòng tròn đi qua chúng.

Phương pháp:
Điều kiện ba điểm A,BA, B và CC thẳng hàng tương đương với sự thẳng hàng của các vectơ AB→\overrightarrow{AB} và BC→\overrightarrow{BC} (hình 2) và có dạng
(x2−x1)(y3−y2)=(y2−y1)(x3−x2).(x_2 - x_1)(y_3 - y_2) = (y_2 - y_1)(x_3 - x_2).
Bài tập 1. Đảm bảo rằng điều kiện này cũng bao gồm các trường hợp hai (hoặc thậm chí cả ba) điểm bất kỳ trùng nhau.
Để vẽ một vòng tròn, chúng ta phải cho người thực hiện (máy tính của trường) biết tọa độ tâm và bán kính của nó.
Như đã biết, tâm SS của đường tròn ngoại tiếp có thể được coi là giao điểm của trung điểm của phân bố lại với hai cạnh của tam giác (AB(AB và BCBC trên hình 3).
tọa độ vectơ:
AB→=(x2−x1,y2−y1),\overrightarrow{AB} = (x_2 - x_1, y_2 - y_1),
BC→=(x3−x2,y3−y2);\overrightarrow{BC} = (x_3 - x_2, y_3 - y_2);
MM - chính giữa cạnh ABAB - có tọa độ
(x1+x22,y1+y22);(\frac{x_1 + x_2}{2}, \frac{y_1 + y_2}{2});
tọa độ điểm NN - điểm giữa

hai bên BCBC
(x2+x32,y2+y32).(\frac{x_2 + x_3}{2}, \frac{y_2 + y_3}{2}).

Bất kỳ điểm nào nằm trên đường thẳng MSMS đều có tọa độ (Mx+λmx,My+λmy)(M_x + \lambda m_x, M_y + \lambda m_y), trong đó MxM_x và MyM_y là các trục hoành và tọa độ tương ứng của điểm MM; mx=y2−y1m_x = y_2 - y_1 và my=x2−x1m_y = x_2 - x_1 là tọa độ của vectơ mm; λ\lambda là một số.
Bài tập 2. Chứng minh rằng m⃗⊥AB→\vec{m} \perp \overrightarrow{AB}.
tọa độ các điểm trên đường thẳng NSNS được thể hiện tương tự thông qua tham số μ\mu, tọa độ điểm NN và vectơ vuông góc với BC→\overrightarrow{BC} (ví dụ: vectơ n=(y3−y2,x2−x3)n = (y_3 - y_2, x_2 - x_3)). Để tìm giao điểm của đường MSMS và NSNS, ta đánh đồng tọa độ tương ứng:
{Mx+λmx=Nx+μnx,My+λmy=Ny+μny.\begin{cases} M_x + \lambda m_x = N_x + \mu n_x, \\ M_y + \lambda m_y = N_y + \mu n_y. \end{cases}

Giải hệ phương trình tuyến tính này cho các ẩn số λ\lambda và μ\mu, chẳng hạn, chúng ta thu được biểu thức cho λ\lambda:
λ=12(y3−y2)(y3−y1)−(x2−x3)(x3−x1)(y2−y1)(x3−x2)−(x2−x1)(y3−y2).\lambda = \frac{1}{2} \frac{(y_3 - y_2)(y_3 - y_1) - (x_2 - x_3)(x_3 - x_1)}{(y_2 - y_1)(x_3 - x_2) - (x_2 - x_1)(y_3 - y_2)}.
tọa độ tâm đường tròn
Sx=Mx+λmx=x1+x22+λ(y2−y1),S_x = M_x + \lambda m_x = \frac{x_1 + x_2}{2} + \lambda (y_2 - y_1),
Sy=My+λmy=y1+y22+λ(x1−x2).S_y = M_y + \lambda m_y = \frac{y_1 + y_2}{2} + \lambda (x_1 - x_2).
Bán kính obtuis được xác định theo định lý Pythagore là khoảng cách giữa tâm và bất kỳ điểm nào đã cho (ví dụ:

58

mét AA):

r=(Sx−x1)2+(Sy−y1)2.r = \sqrt{(S_x - x_1)^2 + (S_y - y_1)^2}.

Bây giờ, đã có script và phương pháp tính toán, chúng ta hãy xây dựng một thuật toán và dịch nó sang MSX - BASIC. Chúng tôi sử dụng thuật toán phụ trợ “hình ảnh” (GOSUB 200 là lệnh gọi chương trình con tương ứng).

Thuật toán:

vòng tròn đại số
sự khởi đầu
đầu ra “Dựng đường tròn”, “đi qua ba điểm”.
yêu cầu “ Tọa độ điểm đầu tiên”; x1,y1x_1, y_1
yêu cầu tọa độ của điểm thứ hai; x2,y2x_2, y_2
yêu cầu tọa độ của điểm thứ ba; x3,y3x_3, y_3

nếu (x2−x1)(y3−y2)=(y2−y1)(x3−x2)(x_2 - x_1)(y_3 - y_2) = (y_2 - y_1)(x_3 - x_2)
sau đó là kết luận “Không thể” “vẽ một vòng tròn đi qua những điểm này” “(và điểm duy nhất ở đó)!”

hình ảnh inche
Tất cả
lừa đảo

hình ảnh đại số
sự khởi đầu
đồ họa
chấm (x1,y1)(x_1, y_1), màu hồng
chấm (x2,y2)(x_2, y_2), màu hồng
chấm (x3,y3)(x_3, y_3), màu hồng

λ:=12(y3−y2)(y3−y1)−(x2−x3)(x3−x1)(y2−y1)(x3−x2)−(x2−x1)(y3−y2)\lambda := \frac{1}{2} \frac{(y_3 - y_2)(y_3 - y_1) - (x_2 - x_3)(x_3 - x_1)}{(y_2 - y_1)(x_3 - x_2) - (x_2 - x_1)(y_3 - y_2)}

Sx:=x1+x22+λ(y2−y1)S_x := \frac{x_1 + x_2}{2} + \lambda(y_2 - y_1)

Sy:=y1+y22+λ(x1−x2)S_y := \frac{y_1 + y_2}{2} + \lambda(x_1 - x_2)

r:=(Sx−x1)2+(Sy−y1)2r := \sqrt{(S_x - x_1)^2 + (S_y - y_1)^2}

vòng tròn (Sx,Sy)(S_x, S_y), rr, màu hồng
lừa đảo

Chương trình:

vòng tròn 10'