
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】値を変更しながら...
-
VBAでCOPYを繰り返すと、処理が...
-
vba textboxへの入力について教...
-
vbsでのwebフォームへの入力制限?
-
EXCEL vbaでシート上に配置した...
-
Excelのマクロについて教えてく...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
エクセルでCDOを使ったメール送...
-
VBA 入力箇所指定方法
-
複数のExcelファイルをマージす...
-
【マクロ】シートの変数へ入れ...
-
VBAでユーザーフォームを指定回...
-
vbaにてseleniumを使用したedge...
-
Vba Array関数について教えてく...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
vb.net(vs2022)のtextboxのデザ...
-
ワードの図形にマクロを登録で...
-
【マクロ】モジュール変数の記...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6でマウスのドラッグで範囲を...
-
SavePictureで保存できない
-
RadioButtonについて
-
ピッ、ってアルファベットでど...
-
円の自転のさせ方
-
Matlabでsin波を使って矩形波を...
-
ボールが壁に当たって跳ね返る...
-
画像の90度回転表示の処理時間...
-
クリップボードにアクティブウ...
-
Picture box の サイズを変更
-
画像をランダムに表示させたい...
-
Matlab/SimulinkのChirp信号に...
-
if文で・・
-
ピクチャーボックスの画像を印...
-
SCALEの使い方教えてください
-
もぐらたたきのプログラミング
-
消す軌跡と残す軌跡
-
PictureBoxでのアニメーション...
-
(VB)ピクチャボックスに表示し...
-
数値が1の時は1で、他の数値は...
おすすめ情報