No.3ベストアンサー
- 回答日時:
Private Sub Form_Load()
With Picture1
.ScaleWidth = Abs(ScaleWidth)
.ScaleHeight = -Abs(.ScaleHeight)
End With
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
With Picture1
.ScaleLeft = -Abs(.ScaleLeft - X)
.ScaleTop = Abs(.ScaleTop - Y)
.ScaleWidth = Abs(ScaleWidth)
.ScaleHeight = -Abs(.ScaleHeight)
Picture1.Circle (0, 0), 10
End With
End Sub
有難う御座いました。参考にさせて頂き、ほぼ希望通りのモノが実行することが出来ました。DOSのC言語もカジリましたが、VBは便利な分だけ、難解な部分も多く毎回アタマを抱えて居ります。なるべく考えた末質問するようにしてますが、毎回快く解答を下さる皆様に感謝と畏敬の念を感じます。有難う御座いました。
No.2
- 回答日時:
フォームにピクチャーボックスを貼りつけてスケールを定義するとそのピクチャーの原点を(0,0)にできますが、任意の場所を原点にするならば補正値としてhoseix,
hoseiyの二つの変数を用意する必要があります。
この二つの変数に補正値を入れて計算に与えれば形の上で原点を求める事が出来ます。
マウスダウンのプロシージャでx、yを求め、引き算して補正値を求めます。
例えば画面の左上が(0,0)だったら、X,Yの場所を(0,0)にするために計算すれば良いわけです。
あとは補正の変数に入れて計算して表示すれば良いわけです。
情報を有難う御座いました。
自分でもいろいろやってみましたが、しかたなく「教えて」に投稿した次第です。皆様のご指導を参考にさせて頂きます。有難う御座いました。
No.1
- 回答日時:
私も力不足ですが、Scaleを使っている下記サイトが見つかりました。
参考になりませんか。見当違いの節は済みません。http://www.nucba.ac.jp/~tkenichi/Lecture/1999/Co …
上記の内容を少し判りやすく、上手く動かない原因らしい点を修復しますと
(1)Formにリストボックス1、リストボックス2を貼りつける。
またコマンドボタンを貼りつける。
(2)Form_Loadイベントに
Private Sub Form_Load()
Dim m(10), n(10)
m(0) = 1
m(1) = 2
m(2) = 3
m(3) = 5
m(4) = 7
n(0) = 2
n(1) = 3
n(2) = 4
n(3) = 6
n(4) = 8
Pi = 3.1415926536
Picture1.Scale (-1, 1)-(1, -1)
For i = 0 To 4
List1.AddItem m(i) ' ここで List1 に配列 m の値を追加している
List2.AddItem n(i)
Next
List1.ListIndex = 0 ' デフォルトで選択されるものを設定
List2.ListIndex = 0
Picture1.AutoRedraw = True
' 画像をファイルに保存する(後で行う)ためのおまじない
End Sub
(3)そしてコマンドボタンのClickイベントに
Private Sub Command1_Click()
mm = List1.List(List1.ListIndex)
nn = List2.List(List2.ListIndex)
Picture1.PSet (1, 0)
Pi = 3.1415926536
For t = 0 To 400
Picture1.Line -(Cos(2 * Pi * mm * t / 400), Sin(2 * Pi * nn * t / 400))
Next
End Sub
を入れる。
(4)これを実行するとPictureBox内にリサジュー図形が書かれます。(テスト済み)
この Picture1.Scale (-1, 1)-(1, -1)の1の部分を
マウスのポイントにより座標原点に自動設定したいと言うことでしょうか。PictureBoxのマウスのイベントでマウス位置x、yを返すのは、MouseMoveイベントなどしかなく、しかしこれは使えず、難しいのではないでしょうか。
良い回答を期待します。
情報を有難う御座いました。
自分でもいろいろやってみましたが、しかたなく「教えて」に投稿した次第です。皆様のご指導を参考にさせて頂きます。有難う御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# VisualStudioについて何点か 1 2023/01/28 13:15
- 生物学 脳の記録部位の集計方法について 1 2022/06/11 21:26
- マウス・キーボード 無線マウスが反応しない 3 2022/05/08 22:22
- 数学 Pythonのspecgramに関する質問です。 1 2022/12/04 19:18
- C言語・C++・C# ディスプレイの解像度とマウスの位置について 2 2023/05/21 19:01
- マウス・キーボード PCでXboxはあそべますか? 6 2022/08/10 00:48
- マウス・キーボード ロジクールのマウスでの不具合について 2 2022/10/26 12:04
- マウス・キーボード PC画面に表示されているHPなどを上下にスライドさせたい 7 2023/03/17 11:05
- Windows 10 フォルダアイコンをパワーポイントなどで自作するには? 2 2022/06/21 18:54
- アート・エンタメ Melodyne5 エッセンシャル 使い方を教えて 1 2022/06/09 17:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SavePictureで保存できない
-
PictureBoxでのアニメーション...
-
ボールが壁に当たって跳ね返る...
-
C#のループでtextboxに値を入れ...
-
Functionの戻り値を配列にした...
-
VBAで入力数値について
-
他のフォームから別のフォーム...
-
VBA public変数はどのようなこ...
-
マクロ 条件式
-
プロシージャまたは関数の引数...
-
チェックボックスを操作できな...
-
VB.NETでのイベントの途中終了
-
C言語のサフィックスについて
-
VBAでcallで呼び出したsubを終...
-
プロシージャを呼び出したプロ...
-
【VB6.0】 あるフォームから他...
-
【VBScript】変数のスコープ
-
vbsでスクロール位置を指定して...
-
verilogのcase文
-
VS CodeでTEXファイルにPDF形式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SavePictureで保存できない
-
文字間の幅の設定
-
Matlabでsin波を使って矩形波を...
-
ボールが壁に当たって跳ね返る...
-
FlexGridで文字色を変更。
-
[ASP]小数点第2位以下をカット!
-
C言語のOpenGLで複数のテクスチ...
-
VB6 ドラッグ&ドロップ
-
ピッ、ってアルファベットでど...
-
もぐらたたきのプログラミング
-
PictureBoxでのアニメーション...
-
グラフィックの表示について VB6
-
(VB)ピクチャボックスに表示し...
-
ホンテットマンションに乗った...
-
SCALEの使い方教えてください
-
VB6でマウスのドラッグで範囲を...
-
一次元静電粒子コードについて...
-
日付の計算
-
画像処理
-
sublimit textっていうエディタ...
おすすめ情報