Here is an album of screenshots and corresponding descriptions which should storyboard the problem I'm about to describe. 이제.NET에서 AutoCAD의 수직/접선 물체 스냅 문제
, 내가 (C#을) 수학 용어 및 코드에서 내 문제를 설명하자
========================
주어 :
(0,0) 및 반경 기원의 중심 원 = 0.0364
원의 상부에 평행하고 의해 분리 된 선분 작은 여백 (그래서 라인 segmen t는 원에 접하지 않는다). 여백의 크기는 중요하지 않습니다. 선 세그먼트의 길이는 원의 직경의 40 %입니다.
상기 라인의 시작점 시작점 및 원형 가장자리를 만지고 그 종료점과 수직 선분.
I의 AutoCAD의 객체 스냅 기능을 사용하여 내 원하는 결과를 수신하지 못하는 경우
========================. 내가 그리려하는 선분은 접선과 직각의 OSnap 모드를 사용하여 대각선으로 렌더링합니다. (다음 C# 1 실시 예 참조)
예 1
bigCircle.GetObjectSnapPoints(
ObjectSnapModes.ModePerpendicular,
0,
tipTopCenterPoint1,
hatTopP3Dstart1,
fakematrix1,
p3dcolright,
icol1
)
...이 새로운 라인에 대각선 접음되고 렌더링. 나는 그것이 무엇에 부딪 치고 있는지 모른다. 그러나 그것이 내가 원하는 것이 아니다.
예 2 :이 함수 ...
bigCircle.GetObjectSnapPoints(
ObjectSnapModes.ModeTangent,
0,
tipTopCenterPoint1,
hatTopP3Dstart1,
fakematrix1,
p3dcolright,
icol1
);
....는 새로운 광고가 대각선되고 밖으로 연장 렌더링한다. 선이 원에 접하는 점에 붙어 있다고 생각하지만, 원하는 것은 아닙니다.
내가 원하는 것은 다음과 같습니다. 내가 어떻게 할 수 있니?
기본적으로 수직선과 원 사이의 교차점이 필요합니다. 수평선을 회전시켜 수직선을 얻을 수 있습니다. 그 라인을 자르거나 지우고 더 짧은 것을 그립니다 (정확한 길이로). –
수평 세그먼트의 시작점은 수직 세그먼트의 시작점과 수직 세그먼트의 끝점의 x 값을 제공합니다. 이제 필요한 것은 종점의 Y 값입니다. 원의 방정식은 x의 함수로 원의 상단의 y 값을 제공합니다. – mbeckish