線分上の最も近い点 「 線分ABと点Pが与えられたとき、AB上でもっともPに近い点を求めるには? 」と質問されました。 なるほど、マウスカーソルの位置を線分上にフィットさせたいんですね。あ、それともGPSから取った座標を道路にフィットさせたい? 垂線をおろして交点を求めるだけの簡単なプログラムのように思えて、これはちょっと工夫が必要です。 ナイーブな解法 垂線をおろして交点を求めればいいわけです。ただし、もし交点がなければ線分の端点AかBのどちらかが答え。 実際に手順を書いてみましょう。 ABの傾きaを求める。 垂線の傾きは -1/a。ただしABが垂直なら垂線の傾きは0。垂線の傾きをbとする。 点Pを通り傾きがbとなる直線を求める。【一次方程式を解く】 ABを直線の式で表し、垂線との交点を求める。【連立一次方程式を解く】 交点の座標がAとBの間にあるなら、交点が求める点。 交点の座標がAの
![図形情報を扱うのに大事なことは、全部高校で教わった - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7848f31824e09cd36e05ac5a9bdb1d0bc3e89009/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU1JTlCJUIzJUU1JUJEJUEyJUU2JTgzJTg1JUU1JUEwJUIxJUUzJTgyJTkyJUU2JTg5JUIxJUUzJTgxJTg2JUUzJTgxJUFFJUUzJTgxJUFCJUU1JUE0JUE3JUU0JUJBJThCJUUzJTgxJUFBJUUzJTgxJTkzJUUzJTgxJUE4JUUzJTgxJUFGJUUzJTgwJTgxJUU1JTg1JUE4JUU5JTgzJUE4JUU5JUFCJTk4JUU2JUEwJUExJUUzJTgxJUE3JUU2JTk1JTk5JUUzJTgyJThGJUUzJTgxJUEzJUUzJTgxJTlGJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iMTY0NzQyNDkxMWExZmU2ZjRhZmNkZDYzM2NkMTI4Yw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweXViYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZWY5MmZhZmU4NmMwZjQwODc0Yzc2MzE2YTEwY2FiMTE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D785400e1ce9b3f2ea5460cc3855488a3)