Misalkan saya memiliki segmen garis dari (x1, y1) ke (x2, y2). Bagaimana cara menghitung vektor normal tegak lurus terhadap garis?
Saya dapat menemukan banyak hal tentang melakukan ini untuk pesawat dalam 3D, tetapi tidak ada hal-hal 2D.
Silakan menggunakan matematika (tautan ke contoh, diagram, atau algoritme yang bekerja dengan baik), saya seorang programmer lebih dari saya seorang ahli matematika;)
Jawaban:
jika kita mendefinisikan dx = x2-x1 dan dy = y2-y1, maka normalnya adalah (-dy, dx) dan (dy, -dx).
Perhatikan bahwa tidak ada pembagian yang diperlukan, jadi Anda tidak mengambil risiko pembagian dengan nol.
sumber
(x', y') = (-y, x)
dan(x', y') = (y, -x)
tampaknya benar, tetapi mengapa orang menggunakandx
dan didy
sini. Selain itu, berdasarkan pada kemiringan,m1 * m2 = -1
untuk garis sudut kanan, makady' = dx' * (-dx/dy)
dandx' = dy' * (-dy/dx)
, bagaimana persamaan Andanormal.x = x' = -dy
?Cara lain untuk memikirkannya adalah menghitung satuan vektor untuk arah yang diberikan dan kemudian menerapkan rotasi 90 derajat berlawanan arah jarum jam untuk mendapatkan vektor normal.
Representasi matriks dari transformasi 2D umum terlihat seperti ini:
di mana (x, y) adalah komponen dari vektor asli dan (x ', y') adalah komponen yang diubah.
Jika t = 90 derajat, maka cos (90) = 0 dan sin (90) = 1. Mengganti dan mengalikannya memberi:
Hasil yang sama seperti yang diberikan sebelumnya, tetapi dengan sedikit penjelasan tentang dari mana asalnya.
sumber
Pertanyaan ini telah diposting sejak lama, tetapi saya menemukan cara alternatif untuk menjawabnya. Jadi saya memutuskan untuk membagikannya di sini.
Pertama, kita harus tahu bahwa: jika dua vektor tegak lurus, produk titiknya sama dengan nol.
Vektor normal
(x',y')
tegak lurus terhadap garis yang menghubungkan(x1,y1)
dan(x2,y2)
. Baris ini memiliki arah(x2-x1,y2-y1)
, atau(dx,dy)
.Begitu,
Banyak pasangan (x ', y') yang memenuhi persamaan di atas. Tetapi pasangan terbaik yang SELALU memuaskan adalah salah satu
(dy,-dx)
atau(-dy,dx)
sumber
jika dua garis tegak lurus:
kemudian
b adalah sesuatu jika Anda ingin meneruskannya dari titik yang Anda tentukan
sumber