(L%2CK)%EB%8A%94%20%EC%A0%90%EC%9D%B4%20%5CtkzDefBarycentricPoint(A%3D1%2CD%3D2)%20%5CtkzGetPoint%7BK%7D%EC%97%90%20%EC%9D%98%ED%95%B4%20%EC%A0%95%EC%9D%98%EB%90%9C%20%EA%B2%BD%EC%9A%B0%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
나는 선과 평면 사이의 교차점을 찾기 위해 이 연습을 했습니다.
이 코드를 사용하면:
\documentclass[9pt,handout]{beamer}
\usepackage{tkz-base}
\usepackage{pgf,tkz-euclide}
\usetkzobj{all}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}
\tkzInit[ymax=7,xmax=9]
\tkzDefPoints{1/0/A, 6/0/B, 6/5/C, 1/5/D}
\tkzDefShiftPoint[A](30:2.5){E};
\tkzDefShiftPoint[B](30:2.5){F};
\tkzDefShiftPoint[C](30:2.5){G};
\tkzDefShiftPoint[D](30:2.5){H};
%%bepalen van lijstuk [ST]
\tkzDefBarycentricPoint(A=1,D=2) \tkzGetPoint{K};
\tkzDrawPoints(K)
\tkzLabelPoints[left](K)
\tkzDefBarycentricPoint(E=1,F=-2.5) \tkzGetPoint{L};
\tkzDrawPoints(L)
\tkzLabelPoints[above](L)
\tkzDrawSegments(A,B B,C C,D D,A F,G G,H B,F D,H C,G K,L);
\tkzDrawSegments[dashed](A,E E,F E,H F,L);
\tkzDrawPolygon[fill=orange!40, opacity=.4](B,C,G,F);
%\tkzDrawPoints(A,B,C,D,E,F,G,H);
\tkzLabelPoints[above](C,D,G,H);
\tkzLabelPoints[below](A,B,E,F); \pause
%%% tekenen van het hulpvlak
\tkzDrawPolygon[color=green,thick](A,D,L); \pause
\tkzDefShiftPoint[L](90:5){K};
\tkzDrawPolygon[fill=green,opacity=0.1,thick](A,D,K,L); \pause
%%% tekenen van de snijlijn
\tkzInterLL(C,G)(D,K) \tkzGetPoint{S1};
\tkzInterLL(A,L)(B,F) \tkzGetPoint{S2};
\tkzDrawPoint[color=red,size=8,fill=red](S1);
\tkzLabelPoint[color=red,above](S1) {S$_1$}; \pause
\tkzDrawPoint[color=red,size=8,fill=red](S2);
\tkzLabelPoint[color=red,below](S2) {S$_2$}; \pause
\tkzDrawSegment[color=red,thick](S1,S2) \pause
\tkzInterLL(S1,S2)(L,D) \tkzGetPoint{S} %%%% <<<< this works fine, but is not correct
%\tkzInterLL(S1,S2)(L,K) \tkzGetPoint{S} %%%% <<<< this doesn't work fine, but is correct
\tkzDrawPoint[color=red,size=10,fill=red](S)
\tkzLabelPoints[color=red,right](S)
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}
내 코드에서 읽을 수 있듯이 KL
와 사이의 교차가 S1S2
작동하지 않습니다. 다른 모든 지점(H,G,D,C,...)을 테스트했지만 작동하지 않는 유일한 것은 KL을 사용하는 것입니다. 충분히 이상하지만 K와 L은 다음과 같이 정의됩니다.
\tkzDefBarycentricPoint(A=1,D=2) \tkzGetPoint{K};
\tkzDefBarycentricPoint(E=1,F=-2.5) \tkzGetPoint{L};
간단한 방법으로 포인트를 정의할 수 있지만 K
이것이 작동하지 않는 이유를 알고 싶습니다. (오류 파일 FP error: Division by zero!.
에 이라고 나와 있는데 이해가 안 됩니까?)
답변1
문제는 선을 K
재정의 하고 평행하므로 정의되지 않는다는 것입니다.\tkzDefShiftPoint[L](90:5){K};
(K,L)
(S1,S2)
\tkzInterLL(S1,S2)(L,K)