極座標の画像

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit

'点の取得と点の絵画のAPI
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

Private Sub Command1_Click()
    Dim jx, jy, pw, ph, Hpw, ex, ey, pai, picHdc1, picHdc2
    
    Command1.Enabled = False 'Command1のイベントを無効にする
    
    pai = 3.14159265358979 / 180 'ラジアンへの変換値
    
    'Picture1の幅を代入
    pw = Picture1.ScaleWidth - 1
    ph = Picture1.ScaleHeight - 1
    
    'Picture2の横幅の1/2を代入
    Hpw = Picture2.ScaleWidth / 2
    
    Picture2.Cls '表示をクリア
    
    'Pictureのhdcを代入
    picHdc1 = Picture1.hdc
    picHdc2 = Picture2.hdc
    
    For jy = 0 To ph
        Picture2.Refresh '作成した絵を表示
        DoEvents 'イベントの取得
        
        'もっと表示を精密にしたい場合は、Stepを0.1にしてください
        For jx = 0 To pw Step 1
            
            '極座標へ
            ex = Cos(((jx / pw) * 360) * pai) * jy
            ey = Sin(((jx / pw) * 360) * pai) * jy
            
            '色の取得と点の表示
            SetPixel picHdc2, Hpw + ex, Hpw + ey, GetPixel(picHdc1, jx, jy)
            
    Next jx, jy
    
    Picture2.Refresh '作成した絵を表示
    
    Command1.Enabled = True 'Command1のイベントを有効にする
    
End Sub

Private Sub Command2_Click()
    Picture1.ZOrder 'Picture1をFormのトップに表示
End Sub

Private Sub Command3_Click()
    Picture2.ZOrder 'Picture2をFormのトップに表示
End Sub





<戻る

Sample19.lzh


http://www.vector.co.jp/authors/VA015521/