dポイントプレゼントキャンペーン実施中!

今回、描画の件では色々と皆さんに教えていただき、
何とかやりたい方向が見てきました。
実際に教えていただいた方法で進めることは出来るのですが、
やはり標題について拘りたく最後の質問になります。

時計の文字盤のイメージを出し、
文字盤周りに引かれた短い線の件ですが、
教えて頂いた方法は、
どれも「倍率を使い、線を縮めたり切ったりする方法」でした。


知りたいことは標題のとおりですが、

始点s(sx,sy)から終点e(ex,ey)への線は、
    ActiveSheet.Shapes.AddLine sx, sy, ex, ey
で引けます。

この線上に在って終点eからqだけ離れた任意の点p(px,py)が分かれば、
    ActiveSheet.Shapes.AddLine px, py, ex, ey
で線が引けると思います。
如何でしょうか。


コレまで私の質問の仕方が下手だったこともあると思いますが、
上記のような回答が無かったということは、
『簡単には出来ない』ということなのでしょうか。
それすらも分からず偉そうに質問していますが、
ご容赦いただき何卒宜しくお願いいたします。

A 回答 (2件)

プログラムというより数学の問題になってきているような……




> どれも「倍率を使い、線を縮めたり切ったりする方法」でした。

> この線上に在って終点eからqだけ離れた任意の点p(px,py)が分かれば、
>     ActiveSheet.Shapes.AddLine px, py, ex, ey
> で線が引けると思います


与えられたqから必要な割合(倍率)を求めれば既にある方法を利用できますよね?

元の線の長さをrをすると、q/rが短くした線の割合です。
 ※rは元の線の始点座標と終点座標から求められます。

前の質問の、縮小させる関数の割合のところに(1-q/r)をいれれば求める線(始点座標、長さ)が得られます。
    • good
    • 0
この回答へのお礼

毎回有り難うございます。

良く理解出来ていなかったのですね、
ご指摘を受け、再度咀嚼しました。
既に前回の中に答はあったのですね。
お手数をお掛けしました。

改めて前回お教えいただいたロジックの凄さが分かりました。
コレで納得して先に進めます。
深謝です。
お世話になりました。

お礼日時:2018/07/22 09:55

px、pyの値が求められれば、当然、引けますよ。


px、pyの求め方も簡単です(最初のサンプルを見ればわかると思うのですが・・・)。
念のため、式を書いておきますが、見当違いならスルーしてください。

exを求める式を①とした場合、pxを求める式は②となります。
①ex = 100 * Cos(n * pai / 180)
②px = 90 * Cos(n * pai / 180)
    • good
    • 0
この回答へのお礼

見る前に閉じてしまいました。
申し訳在りませんでした。

そしてお教えの通り出来ました。
コレで全てが納得、進めます。
深謝です。
お世話になりました。

お礼日時:2018/07/22 10:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!