忍者ブログ

あやの

NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 DCC館 http://1st.geocities.jp/dcc_digital/ DCC2号館 http://dcc.client.jp/

2017/10    09« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  »11
おととい、広角度計器速度計のデモをお見せしましたが、針がイマイチでした。
検証してみました。
言語はExcel VBAを使いました。

■その1
以下のような、プログラムで作りましたが、線1本なので味気がありません。

Sub test()

    ActiveSheet.DrawingObjects.Delete

    Pi = 3.14

    ox = 100

    oy = 100

    For i = 0 To 360 Step 45

        x = Cos(i * Pi / 180)

        y = Sin(i * Pi / 180)

        ActiveSheet.Shapes.AddLine x * 100 + ox, y * 100 + oy, x * 10 + ox, y * 10 + oy

    Next i

End Sub




■その2
針を太らせるために以下のような、プログラムで作りましたが、角度によって開きが異なります。
※現在のDCC速度計のアルゴリズムと同等

Sub test2()

    ActiveSheet.DrawingObjects.Delete

    Pi = 3.14

    ox = 100

    oy = 100

    For i = 0 To 360 Step 45

        x = Cos(i * Pi / 180)

        y = Sin(i * Pi / 180)

        ActiveSheet.Shapes.AddLine x * 100 + ox, y * 100 + oy, x * 10 + ox + 5, y * 10 + oy + 5

        ActiveSheet.Shapes.AddLine x * 100 + ox, y * 100 + oy, x * 10 + ox - 5, y * 10 + oy - 5

    Next i

End Sub





■その3先っぽもSin,Cosを使う必要があるんだねということで。
良い感じになりました。

Sub test3()

    ActiveSheet.DrawingObjects.Delete

    Pi = 3.14

    ox = 100

    oy = 100

    Angle = 60

    For i = 0 To 360 Step 45

        x1 = Cos(i * Pi / 180)

        y1 = Sin(i * Pi / 180)

        x2 = Cos((i * Pi + Angle) / 180)

        y2 = Sin((i * Pi + Angle) / 180)

        x3 = Cos((i * Pi - Angle) / 180)

        y3 = Sin((i * Pi - Angle) / 180)

        ActiveSheet.Shapes.AddLine 100 * x1 + ox, 100 * y1 + oy, 10 * x2 + ox, 10 * y2 + oy

        ActiveSheet.Shapes.AddLine 100 * x1 + ox, 100 * y1 + oy, 10 * x3 + ox, 10 * y3 + oy

    Next i

End Sub






■原理はこんな感じで、(x1,y1)を起点として、(x2,y2), (x3,y3)の座標を演算して表示させています。



拍手[0回]

PR
お名前
タイトル
メール(非公開)
URL
文字色
絵文字 Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメント
パスワード   コメント編集に必要です
管理人のみ閲覧

ブログ内検索

プロフィール

HN:
あやのすけ
性別:
非公開
<< Back  | HOME Next >>
Copyright ©  -- あやの --  All Rights Reserved
Design by CriCri / Material by もずねこ / powered by NINJA TOOLS / 忍者ブログ / [PR]