삼각형 그리는 리습 문의 드립니다.
검색 해 보니
https://www.gocad.co.kr/?mid=qa_cad&search_target=title&search_keyword=%EC%82%BC%EA%B0%81%ED%98%95&document_srl=2467044
3변이 주어졌을 때 그리는 리습이 있으나
이는 직접 입력 방식이고, 3변을 입력 받은후 오류가 납니다.
조건은 3개의 선분이나 호 가 있고
객체 3은 선분이며
객체1과 2의 합은 객체 3보다 커야 한다 는 가정입니다.
추출 소수점 자리수는 최대(8자리)
작동 방식은
1) 객체 1을 선택 합니다.
2) 객체 2를 선택합니다.
3) 객체 3을 선택 합니다.
객체 3은 삼각형이 그려질 기준객체가 됩니다.
4) 기준객체의 끝점을 P1을 클릭 합니다.
P1 에 1번객체
5) 기준객체의 끝점을 P2를 클릭 합니다.
P2 에 2번객체
6) 삼각형이 그려질 방향을 선택 합니다.
상,하,좌,우
P1 에 1번객체의 객체 길이로
P2 엔 2번객체의 객체 길이로….
만약 3번객체를 선택 후 p1,p2 찍는 순서가 바뀐다면
이후 그려지는 삼각형도 P1,p2 에 따라서 거꾸로 그려 졌으면 합니다.
추가로 객체 1번 2번 선택후
아니면 삼각형이 작도 된 후에
1,2번 객체는 지워졌으면 합니다.
지금은 길이 구하는 리습과 원 그리는 리습을 합쳐서
객체 길이을 반지름으로 하는 원을 그리는 리습을 만들어 양 끝점에서 원을그려
교점에 선을 그리고 지우는 과정을 반복 하고 있습니다.
리습도 모르면서 14줄짜리 리습을 3일 주물럭 거려서 만들었 습니다…ㅠㅠ
염치 불구하고 리습으로 제작 의뢰합니다.
공식은 아래와 같습니다.
스카라베Lv.0
삼각형 그리는 리습문의
공유
1) 1번객체를 선택하여 선이나호의 길이를 알아낸다.
2) 2번객체를 선택하여 선이나호의 길이를 알아낸다.
3) 3번 객체를 선택할때 p1 지점에 가깝도록 선택한다.
4) 삼각형 그려질 방향을 선택한다.
5) 삼각형이 작도 된다.
6) 1,2,3번객체가 사라진다.
3번객체를 선택하고 p1,p2를 다시 지정할 필요는 없습니다,
3번 객체를 선택할째 p1지점에 가까운곳으로 선택하면 됩니다.
즉 선택된 지점에서 선의시작점, 끝점의 위치를 추출한다음 선택점에서 가까운 곳으로 p1의위치를 정하면 되니까요.
그러나 수동으로 작도할때처럼 1,2번 객체거리를 반지름으로 그려진 두원의 교차점은 2곳이되므로 삼각형이 그려질 방향 위치를 3번 객체를 기준으로 좌,우 또는 상,하 방향을 클릭해주어야 됩니다.
3각형이 작도 될때 Lwpolyline으로 그려지면 1,2,3번객체가 사라지고 Line로 그려지면 선분 두개가 그려지면서 1,2번 객체만 사라지게 만들면 됩니다.
특히 주의할점은 1,2번 객체길이를 더한값이 3번 객체길이보다 커야 된다는 겁니다.
당연히 1,3번 객체의 길이합이 2번보다커야되고 2,3번 객체 길이 합이 1번 객체길이보다 커야됩니다.
1) 3번객체의 양끝에 1,2,번 객체의 길이를 반지름으로 하는 원을작도해서 두원의 교차점 2곳을 추출한다음 4)번째 선택된위치와 가까운점을 선택해서 삼각형을 작도하고 두원을 삭제하는 방법
2) 3변의 길이로 좌표를 직접 계산해서 삼각형을 작도하는방법은 두원을 작도할 필요가 없으므로 삼각형만 작도하면 되고…
이상의 내용을 근거로 리습을 만들면 리습을 만들줄알면 손쉽게 만들수 있을텐데.. 누가 만들어 주실려나~~
잘못된 숫자라고만 하네요…^^
제가 입력을 잘못했는지……….
이미지엔 소수점이 3자리지만
소수점을 최대한 집어 넣어야 하기 때문에
무엇 보다 치수 입력 방식 이라서 불편합니다.
원하시는 것이 이것 인가요?
명령: 123
객체 1을 선택 합니다:
객체 2을 선택 합니다:
기준객체의 끝점, P1을 클릭 합니다:
기준객체의 끝점, P2을 클릭 합니다:; 오류: no function definition: MXV
P2 를 찍으면 오류가 납니다.
지금까진 원하는 방식대로 되고 있는것 같습니다.
감사합니다.
;; Matrix x Vector – Vladimir Nesterovsky
;; Args: m – nxn matrix, v – vector in R^n
(defun mxv ( m v )
(mapcar ‘(lambda ( r ) (apply ‘+ (mapcar ‘* r v))) m)
)
파일에 붙여넣고 다시 로드하세요!
작동은 잘 됩니다.
방향성이 있어야 합니다.
지금은 p1, p2 클릭 순서에 따라서 p1의 시계 반대 방향으로만 그려집니다.
p1, p2 클릭 후 삼각형이 그려지는 방향을 석택 할 수 있어야 합니다.
아래 이미지는 현제상황 입니다.

희망사항
다이나믹하게 처리하는게 좋을 것 같으나 귀찮아서 GG입니다
제가 너무 힘들게 했나봅니다.
여기 까지 해 주신 것만으로도 감사합니다. ^^