VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 描画・画像関係のメニュー
1.Imageコントロールで画像を拡大・縮小・移動表示・印刷する
2.PictureBox コントロールで画像を拡大・縮小表示する
3.網掛け文字を表示及び印字
4.ピクチャーボックス上に円グラフを描画する
5.AVI(アニメーション)ファイルを表示する
6.ピクチャーボックスに表示・描画した画像・文字の保存及び消去方法
7.フォームの背景にグラデーションを描く(VBの標準の機能で)
8.上下左右の鏡像を得る(VBの標準の機能で)
9.ピクチャーを90度毎に回転させて表示(VBの機能で)
10.表示位置・印字位置(文字列)を揃える
11.画像ファイルをスクロール表示しながら連続読み込み
12.メモリDCを使っての画像表示(拡大・縮小・鏡像・180度回転)
13.図形の内部を塗りつぶす
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載の描画・画像に関するサンプル


9.ピクチャーを90度毎に回転させて表示(VBの機能で)
1.ピクチャーを90度毎に回転させて表示(VBの機能で)
2.
3.
4.
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.ピクチャーを90度毎に回転させて表示(VBの機能で)

Option Explicit   'SampleNo=085 2002.05.17

Private Sub Form_Load()
  Dim i As Integer
  For i = 0 To 4
    'ピクセル単位に設定
    Picture1(i).ScaleMode = 3
    Picture1(i).AutoRedraw = True
    Set Picture1(i).Picture = LoadPicture("..\AN050.GIF")
  Next i
End Sub

Private Sub Command1_Click()
  Dim co1 As Double, co2 As Double, co3 As Double, co4 As Double
  Dim si1 As Double, si2 As Double, si3 As Double, si4 As Double
  Dim x1 As Long, x2  As Long, x3  As Long, x4  As Long
  Dim y1 As Long, y2  As Long, y3  As Long, y4  As Long
  Dim x  As Long, y   As Long
  Dim c  As Long
  Dim i  As Integer

  co1 = Cos(1.57) '90 * 3.1417 / 180
  si1 = Sin(1.57)
  co2 = Cos(3.14) '180 * 3.1417 / 180
  si2 = Sin(3.14)
  co3 = Cos(4.71) '270 * 3.1417 / 180
  si3 = Sin(4.71)
  co4 = Cos(0.785) '45 * 3.1417 / 180
  si4 = Sin(0.785)
  'コントロールの中心を原点(0,0)に設定
  '正方形で割り切れる寸法が望ましい
  Picture1(0).ScaleLeft = -Picture1(0).ScaleWidth \ 2
  Picture1(0).ScaleTop = -Picture1(0).ScaleHeight \ 2
  Picture1(1).ScaleLeft = -Picture1(1).ScaleWidth \ 2
  Picture1(1).ScaleTop = -Picture1(1).ScaleHeight \ 2
  Picture1(2).ScaleLeft = -Picture1(2).ScaleWidth \ 2
  Picture1(2).ScaleTop = -Picture1(2).ScaleHeight \ 2
  Picture1(3).ScaleLeft = -Picture1(3).ScaleWidth \ 2
  Picture1(3).ScaleTop = -Picture1(3).ScaleHeight \ 2
  Picture1(4).ScaleLeft = -Picture1(4).ScaleWidth \ 2
  Picture1(4).ScaleTop = -Picture1(4).ScaleHeight \ 2
  '一旦ピクチャーをクリヤ
  For i = 1 To 4
    Set Picture1(i).Picture = LoadPicture()
  Next i
  For x = -Picture1(0).ScaleWidth \ 2 To Picture1(0).ScaleWidth \ 2
    For y = -Picture1(0).ScaleHeight \ 2 To Picture1(0).ScaleHeight \ 2
      x1 = x * co1 - y * si1
      y1 = x * si1 + y * co1
      x2 = x * co2 - y * si2
      y2 = x * si2 + y * co2
      x3 = x * co3 - y * si3
      y3 = x * si3 + y * co3
      x4 = x * co4 - y * si4
      y4 = x * si4 + y * co4
      '図のカラー情報の読み取り
      c = Picture1(0).Point(x, y)
      '読み取ったカラー情報を角度を変更して描画
      If c <> -1 Then
        Picture1(1).PSet (x1, y1), c
        Picture1(2).PSet (x2, y2), c
        Picture1(3).PSet (x3, y3), c
        Picture1(4).PSet (x4, y4), c
      End If
    Next y
  Next x
End Sub

  図1.上記実行結果
 drawing09_01

敢えて、VB6.0の標準の機能だけで実現しましたが、実用には堪えませんので、実装される場合は、Win 32 API をした画像を高速に90度毎に回転表示する方法(VB6.0)を使って下さい。

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
1.ピクチャーを90度毎に回転させて表示(VBの機能で)




このページのトップへ移動します。