質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

4回答

2320閲覧

関数の接線について、、、

windowsaa

総合スコア16

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2017/10/16 03:29

y = x × x × xという関数が存在した時、この関数を微分すると、接線の傾きが求めることができます。

接線を描画しようとする際、接線を描画するには2頂点を指定する必要があります。

どのように、すればかけますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

こんにちは。

直線は、その直線が通る2点を与えて決定できますが、傾きとその直線が通る1点を与えても決定できます。
任意の関数の任意の点について、その点を通り、かつ、その点の傾きが対象の曲線と等しい直線を決定できます。これは簡単と思います。
その決定した直線のパラメータを用いて描画すれば良いと思います。

投稿2017/10/16 03:44

編集2017/10/16 04:34
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

majiponi

2017/10/16 04:31

接線は必ずしも交わってはいけないわけではないですよ。交わるときに交差角が0度なら接線です。
Chironian

2017/10/16 04:34 編集

majiponiさん。 調べたら確かにその通りですね。フォローありがとうです。 無用な記述を消しておきます。
guest

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

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ナニがわからんのかわからんが、y = f(x) の x = t における接線の傾きは f'(t) やね。
だから接線は y = f'(t) + C となる。
この接線は (t, f(t)) を通るから f(t) = f'(t) + C。これより C が求まる。

あとは ふたつのx: x0, x1 をテキトーに用意してそれぞれに対する y0,y1 を求め、
2点 (x0,y0), (x1,y1) を結ぶ直線を引けばいい。

投稿2017/10/16 03:48

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

karamarimo

総合スコア2551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問