직선 방정식

기본형



기울기가 $ m $이고 점 $ (0, n) $를 통과하는 직선 방정식은
$$\bf y=mx+n$$
로 표시된다. ( $y$ 절편이 $n$ )
$ m = 0 $이면 $ y = n $이며, 이는 $ x $ 축에 평행 한 직선을 나타냅니다.
$y$ 축에 평행한 직선($x=p$ 의 형태의 직선)은 이 형태에서는 표현할 수 없다.


일반형



직선의 방정식 $y=mx+n$ 의 우변을 좌변에 이항하고 정리하면,
$ mx-y + n = 0 $이며, 이것은 $ x, y $에 대한 일반적인 형태의 1 차 방정식입니다.
$$\bf ax+by+c=0\(a\neq 0\또는\b\neq0)$$
모양입니다. 이것이 직선의 방정식의 일반형.

이 형태라면, $y$축에 평행한 직선도 표현할 수 있다.
이 형태의 단점은, 하나의 직선의 표현이 일의에 정해지지 않는다, 즉,
$3x-2y-4=0$ 과 $x-\frac{2}{3}y-\frac{4}{3}=0$ 는 같은 직선을 나타낸다.

이 방정식은 $ x $와 $ y $에 대한 1 차 방정식이므로 $ x $와 $ y $의 계수 $ a $와 $ b $는 동시에 $ 0 $가되지 않습니다.
즉, $a = 0, b = 0 $가되지 않습니다.

$a\neq0,b\neq0$ 의 경우, $ax+by+c=0$ 는,
$$y=-\frac{a}{b}x-\frac{c}{b}$$
그리고 다시 쓰여지기 때문에 이것은 기울기가 $-\dfrac{a}{b}$, $y$ 절편이 $-\dfrac{c}{b}$의 직선을 나타낸다.

$a\neq0,b=0$ 의 경우, $ax+by+c=0$ 는,
$$x=-\frac{c}{a}$$
된다. 이것은 $y$ 축에 평행한 직선을 나타낸다.

$a=0,b\neq0$ 의 경우, $ax+by+c=0$ 는,
$$y=-\frac{c}{b}$$
된다. 이것은, $x$ 축에 평행한 직선을 나타낸다.

또한,
선형 $ ax + by + c = 0 $에서 계수 세트 $ (a, b) $는이 직선의 법선 벡터 중 하나를 나타냅니다.
( 직선 벡터 방정식 참조)

【예】 방정식 $3x-2y-4=0$ 의 나타내는 도형을 쓴다
이 공식을 변형하면,
$$y=\frac{3}{2}x-2$$
된다. 이것은 기울기가 $-\dfrac{3}{2}$, $y$ 절편이 $-2$인 직선을 나타낸다.


한 점과 기울기가 주어진 직선



점$(x_1,y_1)$ 를 지나, 기울기가 $m$ 의 직선은, $y$ 절편을 $n$ 라고 하면, 직선의 방정식의 표준형,
$$y=mx+n$$
로 표현할 수 있다. 이 직선이 점 $(x_1,y_1)$ 를 통과하므로,
$y_1=mx_1+n$ 즉, $n=y_1-mx_1$
이것을 원래의 표준형의 식에 대입하면,
$y=mx+y_1-mx_1$ 가 되어, $y_1$ 를 좌변으로 이항해, 우변을 $m$ 로 오면,
$$\bf y-y_1=m(x-x_1)$$
된다. 이것은 점 $(x_1,y_1)$ 를 통과하고 기울기가 $m$인 직선 방정식입니다.


두 점을 통과하는 직선




2점 $P_1(x_1,y_1)$, $P_2(x_2,y_2)$ 를 통과하는 직선은,
$x_1\neq x_2$일 때,
이 직선의 기울기는 $\dfrac{y_2-y_1}{x_2-x_1}$ 에서 점 $(x_1,y_1)$ 를 통과하므로,
1점과 기울기가 주어진 직선의 식 $y-y_1=m(x-x_1)$ 에 의해,
$$\bf y-y_1=\dfrac{y_2-y_1}{x_2-x_1}(x-x_1)$$
된다. 이것이 2점 $(x_1,y_1)$, $(x_2,y_2)$ 를 통과하는 직선 방정식입니다.
이 식은 $x_1=x_2$ 의 경우, 우변의 분모가 $0$ 가 되기 때문에 성립하지 않는다.
따라서, $y$ 축에 평행한 직선을 표현할 수 없다.

이 방정식을 변형하여
(1) 오른쪽과 왼쪽을 바꿉니다.
$\dfrac{y_2-y_1}{x_2-x_1}(x-x_1)=y-y_1$

(2) 양변에 $(x_2-x_1)$ 를 곱한다
$(x-x_1)(y_2-y_1)=(x_2-x_1)(y-y_1)$

(3) 배포
$xy_2-xy_1-x_1y_2+x_1y_1=x_2y-x_2y_1-x_1y+x_1y_1$

(4) 양변에 $x_1y_1$ 가 있으므로 지운다. 좌변을 $x$, 우변을 $y$로 오는
$(y_2-y_1)x-x_1y_2=(x_2-x_1)y-x_2y_1$

이 식의 우변을 좌변으로 이항하면,
$$\bf (y_2-y_1)x-(x_2-x_1)y-(x_1y_2-x_2y_1)=0$$
된다. 이것도 2점 $(x_1,y_1)$, $(x_2,y_2)$ 를 통과하는 직선의 방정식입니다.
또한 부호를 $+$로 바꾸고,
$$\bf (y_2-y_1)x+(x_1-x_2)y+(x_2y_1-x_1y_2)=0$$
이 식은 직선 방정식의 일반형 $ax+by+c=0$ 의 형태를 하고 있다.

2점으로부터 직선의 방정식을 구하는 프로그램



직선의 방정식을 프로그램으로 취급하는 경우는, 정규화하면 편리.
;; 2点から直線の方程式を求める ax + by + c = 0
;; 点p1,p2 から 直線の方程式の係数 a , b , c のリストを返す
;; 2点間の距離(len)で割って正規化する
;;     Args - p1, p2 : 点のリスト
(defun line:GetEquation (p1 p2 / x1 y1 x2 y2 l)
    (setq x1 (car p1) y1 (cadr p1)
          x2 (car p2) y2 (cadr p2)
          len (distance p1 p2) ;; p1-p2の距離
    )
    (if (> len 1.0e-08)
        (mapcar
            (function
                (lambda (x) (/ x len))
        )
        (list (- y2 y1) (- x1 x2) (- (* x2 y1) (* x1 y2)))
        )
    )
)

;; < Example >
(line:GetEquation '(2 3) '(10 -1))
;; -> (-0.447214 -0.894427 3.57771)
(line:GetEquation '(2 3) '(10 5))
;; -> (0.242536 -0.970143 2.42536)
(line:GetEquation '(6 -2) '(4 2))
;; -> (0.894427 0.447214 -4.47214)
(line:GetEquation '(2 0) '(2 -9))
;; -> (-1.0 0.0 2.0)

좋은 웹페이지 즐겨찾기