高校数学の質問スレ Part430at MATH
高校数学の質問スレ Part430 - 暇つぶし2ch235:132人目の素数さん
23/07/25 10:36:13.41 aql7CYn0.net
Rに楕円を描く関数が備わっているわけではないので自分で作る
# draw ellipse 中心(長軸短軸の交点)が(x,y)の楕円を描く
ellip <- function(x, y, a, b,...){
theta <- seq(-pi, pi, length=100)
lines(x + a*cos(theta), y + b*sin(theta), ...)
}
厳密にいえば100角形を楕円にみせているだけ。
こういう小道具を自分用に作っておくと作図やプログラミングが効率化できる。
小道具の例
# 直線ABにCからおろした垂線の足Hの座標を複素数で返す
# 0<t<1なら線分AB上の点
ABC2H <- function(A,B,C){ # from C to H on A-B
if(is.complex(c(A,B,C))){
a1=Re(A) ; a2=Im(A)
b1=Re(B) ; b2=Im(B)
c1=Re(C) ; c2=Im(C)
}else{
a1=A[1] ; a2=A[2]
b1=B[1] ; b2=B[2]
c1=C[1] ; c2=C[2]
}
a=c(a1,a2) ; b=c(b1,b2) ; c=c(c1,c2)
t=(-a1*b1+a1*c1-a2*b2+a2*c2+b1^2-b1*c1+b2^2-b2*c2)/(a1^2-2*a1*b1+a2^2-2*a2*b2+b1^2+b2^2)
H=t*c(a1,a2)+(1-t)*c(b1,b2)
if(is.complex(c(A,B,C))){
return(list(t=t,H=H[1]+1i*H[2]))
}else{
return(list(t=t,H=H))
}
}


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch