• SEARCH

    통합검색
세모계
    • Dark Mode
    • GNB Always Open
    • GNB Height Maximize
    • Color
    • Brightness
    • SINCE 2015.01.19.
    • 세모계 세모계
    •   SEARCH
    • 세상의 모든 계산기  
      • 자유(질문) 게시판  
      • 계산기 뉴스/정보  
      • 수학, 과학, 공학 이야기  
      • 세모계 : 공지 게시판  
        • 구글 맞춤검색  
      • 세상의 모든 계산기  
        • 자유(질문) 게시판  
    • TI  
    • CASIO  
    • HP  
    • SHARP  
    • 일반(쌀집) 계산기  
    • 기타계산기  
    • 세모계
    • by ORANGEDAY
  • TI
    • TI nspire
    • 두 원이 주어졌을 때, 공통 내접선의 교점과 기울기를 구하는 방법 (프로그램)

    • Profile
      • 세상의모든계산기
        *.165.6.43
      • 2016.02.26 - 16:21 2015.10.29 - 08:23  3299  1

    문제 : 두 원에 대하여 c1={x1, y1, r1}, c2={x2, y2, r2} 로 입력받았다고 할 때, 
    공통내접선의 교점과 기울기를 구하려면?

    1. 내접선의 교점은 두 원의 중심을 이은 직선을 r1:r2 로 내분한 점(idp)과 같다. 
      ㄴ Internally Dividing Point
       
    2. 1.의 내분점(IDP) 과 c1 사이의 거리, IDP와 접선의 (c1에서의) 접점 사이의 거리를 구한다. 
      ㄴ IDP와 접선의 접점 사이 거리 = 내접선의 길이 * 내분 비율
       
    3. 각도 t1, t2를 구한다.  
      t1 = c1과 c2의 중점을 잇는 직선이 x축과 이루는 각
      t2 = c1에서의 공통내접점 ~ 원의 중심 ~  IDP 사잇각
       
    4. 4. t1, t2를 이용해 기울기를 구한다. 
      K-20151030-505355.png

     

    아래는 TI-nspire 에서 작성된 프로그램입니다. 

    Define common_itl()=
    Prgm
    :© Request basic data for 2 circles
    :Request "{x1,y1,r1} List =",circle1,0
    :Request "{x2,y2,r2} List =",circle2,0
    :
    :© Check data compatibility
    :If (circle2[1]-circle1[1])^(2)+(circle2[2]-circle1[2])^(2)<(circle1[3]+circle2[3])^(2) Then
    :  Disp "Too close"
    :  Goto end
    :EndIf
    :
    :newList(3)→circle3
    :
    :© Redefine vars to draw graph
    :circle1[1]→circle1.x
    :circle1[2]→circle1.y
    :circle1[3]→circle1.r
    :circle2[1]→circle2.x
    :circle2[2]→circle2.y
    :circle2[3]→circle2.r
    :
    :© Calculate Internally Dividing Point
    :((circle1[3]*circle2[1]+circle2[3]*circle1[1])/(circle1[3]+circle2[3]))→idp.x
    :((circle1[3]*circle2[2]+circle2[3]*circle1[2])/(circle1[3]+circle2[3]))→idp.y
    :
    :© Calculate Distances between IDP and the center of circles
    :Local circle1.ratio,circle2.ratio
    :((circle1[3])/(circle1[3]+circle2[3]))→circle1.ratio
    :((circle2[3])/(circle1[3]+circle2[3]))→circle2.ratio
    :
    :√((circle2[1]-circle1[1])^(2)+(circle2[2]-circle1[2])^(2))→distance.c1c2
    :distance.c1c2*circle1.ratio→distance.c1idp
    :distance.c1c2*circle2.ratio→distance.c2idp
    :
    :√(distance.c1c2^(2)-(circle1[3]+circle2[3])^(2))→distance.citl
    :distance.citl*circle1.ratio→circle3.r
    :circle3.r→circle3[3]
    :
    :© Calculate Slope of Tangent Line
    :tan(((circle2[2]-circle1[2])/(circle2[1]-circle1[1])))→t1
    :tan(((circle3[3])/(circle1[3])))→t2
    :
    :tan(t1+t2+((π)/(2)))→idp.slope1
    :tan(t1-t2+((π)/(2)))→idp.slope2
    :
    :Disp "circle1=",circle1," and circle2=",circle2
    :Disp "Intersection point of Common_ITL=",{idp.x,idp.y}
    :Disp "Slope of Common_ITL=",approx({idp.slope1,idp.slope2})
    :c1_itp()
    :
    :Lbl end
    :EndPrgm

     

    10-30-2015 Image001.png

    10-29-2015 Image005.png

     

    0
    0
    Attached file
    10-29-2015 Image005.png 22.0KB 5810-30-2015 Image001.png 15.6KB 54K-20151030-505355.png 41.0KB 49common_itl.tns 11.9KB 151
    이 게시물을..
    • 세상의모든계산기 세상의모든계산기 Lv. 25

      계산기는 거들 뿐
      혹은
      계산기를 거들 뿐

    • [TI-89] 키 입력 내용 수정하기세상의모든계산기
    • [TI-89t] 자연상수 (e) 의 입력세상의모든계산기

     댓글 1

      • Profile
      • 세상의모든계산기 (*.165.6.43) 2015.10.29 14:03 #comment_9420

        C1에서의 공통 내접선의 접점을 구하려면? 

        1. C1과 C3을 연립하여 풀거나, 
          ㄴ C3는 (idp,x,idp.y)를 중심으로 하고 위에서 구한 circle3.r 을 반지름으로 하는 원
        2. c1->idp 벡터를 (t2)만큼 회전하고 scalar 곱하여 구할 수 있음.
          [[cos(θ),−sin(θ)][sin(θ),cos(θ)]]→rot_matrix(θ)
          ((circle1.r)/(distance.c1idp))*rot_matrix(±t2)*(vector.c3-vector.c1)+vector.c1
        0
        댓글
    • 댓글 입력
    • 에디터 전환
    댓글 쓰기 에디터 사용하기 닫기
    • 목록 목록
    • [TI-89] 키 입력 내용 수정하기
    • [TI-89t] 자연상수 (e) 의 입력
    • 목록
    1
    by OrangeDay
    • TI
    • allcalc.org
    • 세모계 all rights reserved.