y = x × x × xという関数が存在した時、この関数を微分すると、接線の傾きが求めることができます。
接線を描画しようとする際、接線を描画するには2頂点を指定する必要があります。
どのように、すればかけますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
こんにちは。
直線は、その直線が通る2点を与えて決定できますが、傾きとその直線が通る1点を与えても決定できます。
任意の関数の任意の点について、その点を通り、かつ、その点の傾きが対象の曲線と等しい直線を決定できます。これは簡単と思います。
その決定した直線のパラメータを用いて描画すれば良いと思います。
投稿2017/10/16 03:44
編集2017/10/16 04:34総合スコア23272
0
ベストアンサー
に本件に応用できるヒントも含んでいる気がするのですが、残念ながらこの回答では質問者さんにとって有効ではなかった気がします。
Chironianさんが幾何的な考え方を答えておられますが、回答を生かすには以下のような数学知識が必要です。
- 微分のそもそもの考え方
xがΔXだけ変化したらyがΔYだけ変化するとき、傾きがΔY/ΔXと考えるとか。
- 微分計算
N次式、初等関数などの微分を筆算でできること。
- 基本的な幾何計算
ある点P0,P1の距離の計算式
ある点P0,P1を通る直線の傾きの計算式
ある点P0からP1への傾きdy/dxと距離Dが与えられたとき、P1の位置の計算式
ある直線と別の直線の交点の計算式
などなど
- 1次あるいはN次方程式の解の式を筆算ではじき出すこと
これらは「できる前提」です。失礼ながら自分には質問者さんが上記のいくつかが少々怪しいのではないかと感じます。
karamarimoさんやepistemeさんは数式を示して回答しておられますが、それについても結局は上記の知識なしには式を眺めてもピンとこないのでは?
結局のところ上記について学び応用ができるようになればもはや本件のような質問は必要なくなります。
質問者さんがもし数学に苦手意識をお持ちなら「そういってもなぁ」と感じられるかも知れません。しかし、「こういうことするためのコードをちょうだい(A)」と言わずに「自分でコードを書けるようにする(B)」のであれば避けて通れないと思います。本サイトでの多くのみなさんの取り組み方は(A)ではなく(B)に近いので、学ぶことが順当に思えます。
ちなみに、プログラミング的な配慮という面でいえば、例えば「傾きdy/dxが大変大きくなる可能性があり、そのような直線を画面内いっぱいに書くときには無条件にx=Xlimitとの直線の交点を端点として求めるのではなく、傾きに応じてy=Ylimitを使ったり、あるいは直線上の点P0(画面内に含まれるとする)からの充分な距離Dだけ離れた点の座標を端点とする」といった話があります。これはGUIシステムに指定できる座標範囲に制限があるとか計算上の誤差といったプログラミング特有の話になりますが、これについても上に述べた数学的基礎の把握が必要で、それなしには「そういう問題がおきる」ことに気づけず、また「どう対処するか」が考えられない気がします。
投稿2017/10/16 12:46
総合スコア18394
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
接線を描画する範囲はどうしたいのでしょうか?
画面の左端から右端だと仮にすると、
(x0, y0)における接線の傾きをaとすると、接線の方程式は
y = a(x - x0) + y0
となるので、画面端のx座標を x = xl, xr とすると
(xl, a(xl - x0) + y0) から (xr, a(xr - x0) + y0) まで線を引けばいいということになります。
投稿2017/10/16 03:43
総合スコア2551
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/16 04:31
2017/10/16 04:34 編集