っつー訳で、第一志望合格です!
後期で!!募集人数6人のとこに上手い事食い込めた!!!
ひゃっほい!!

と言う訳で、京都にお引越しです。
あ、言っとくけど頭良くないからね?
どこぞの国公立とかかんかんどーりつとか受からないからね?w
そこだけはいっておきま~す
いきなり、ピグ内で飲もうといわれたので、乗ってみた。
そしたら以下の会話に。
(名前は、○と□で一部を伏せてます。)


りー○□んん: 家に来て
--- りー○□んのお部屋へ移動しました
(10:58) りー○□ん: なんか、よっちゃったみたい
(10:59) 矩笠: あらら
(10:59) 矩笠: ろれじゃあ、ゆっくり寝てくださいな
(10:59) りー○□ん: 帰れ
(10:59) りー○□ん: きもい
(10:59) りー○□ん: しね
(10:59) 矩笠: えwwちょww
(10:59) りー○□ん: kすkす
(10:59) りー○□ん: kすkす
(10:59) りー○□ん: す
(10:59) りー○□ん: ks
(10:59) りー○□ん: かす
(10:59) りー○□ん: かす
(10:59) りー○□ん: かす
(10:59) りー○□ん: かす
(11:00) りー○□ん: かす
(11:00) りー○□ん: かう
(11:00) りー○□ん: かす
(11:00) りー○□ん: かう
(11:00) りー○□ん: ジャウイエwfr;2j3 htbvm32g3:v4mrv35jvmrkf
(11:00) 矩笠: 壊れた?w
(11:00) りー○□ん: とにかく帰れ!
(11:00) りー○□ん: キモいよ
(11:00) りー○□ん: 目が青いし
(11:00) りー○□ん: いおっ
(11:00) りー○□ん: 通報するよ


ネカマのつりか?w
出会い興味ないのにww
たまには、プログラムでものっけてみよう。
そんな気分でございます。

リサージュ曲線。
聞いたことありますか?
数学Cの分野でやりました。オレは。

それを実際にプログラムで走らせて見よう!
そんな感じです。

では、やってみます。

Dim hMemDC As HDC
Dim hMemBmp As HBITMAP

グローバル変数で、デバイスコンテキスト(オレはデバコンと略している)を定義。
メモリDC(メモリデバイスコンテキスト)に描写して、それをウインドウに描写する、そういう形。
なお、ウインドウはRADツールで製作しています。
サイズは640*480

Sub MainWnd_Destroy()
DeleteDC(hMemDC)
DeleteObject(hMemBmp)
curve_DestroyObjects()
PostQuitMessage(0)
End Sub

デストロイイベント。
DeleteDC(hMemDC)
DeleteObject(hMemBmp)
これを入れないと、メモリを確保したままになる。

Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
SetWindowCenter(hMainWnd,0,0)
SetWindowPos(hMainWnd,NULL,0,0,640,480,SWP_NOMOVE)

'デバコンの設定
Dim hDC As HDC
hDC=GetDC(hMainWnd)

hMemDC=CreateCompatibleDC(hDC)
hMemBmp=CreateCompatibleBitmap(hDC,640,480)
SelectObject(hMemDC,hMemBmp)

ReleaseDC(hMainWnd,hDC)

Dim dw As Long
CreateThread(ByVal 0,0,AddressOf(PaintPic),0,0,VarPtr(dw))

End Sub

ウインドウのクリエイトイベント。

SetWindowCenter(hMainWnd,0,0)
これは、オレが勝手に定義したルーチン。
ウインドウを画面中央に持っています。(外部より読み出し。ここでは省略)


Sub MainWnd_Paint(hDC As HDC)
BitBlt(hDC,0,0,640,480,hMemDC,0,0,SRCCOPY)

End Sub

ペイントイベント。
ウインドウにメモリDCを描写


Sub PaintPic()
Dim x As Long
Dim y As Long
Dim t As Double
Dim a As Long
Dim b As Long
Dim i As Double
Dim rgbc As DWord

a=3
b=5
t=(3.141592653589793/180)

Randomize
rgbc=RGB(255,255,255)

For i=0.1 to 3600000 Step 0.1
x=Cos(a*t*i)*100+320
y=Sin(b*t*i)*100+240
SetPixel(hMemDC,x,y,rgbc)
InvalidateRect(hMainWnd,ByVal 0,FALSE)
Sleep(1)
Next

End Sub

今回の要。
リサージュ曲線の計算。
というより、ドットを描写してますね。


まとめ。


Sub MainWnd_Destroy()
DeleteDC(hMemDC)
DeleteObject(hMemBmp)
curve_DestroyObjects()
PostQuitMessage(0)
End Sub

Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
SetWindowPos(hMainWnd,NULL,0,0,640,480,SWP_NOMOVE)

'デバコンの設定
Dim hDC As HDC
hDC=GetDC(hMainWnd)

hMemDC=CreateCompatibleDC(hDC)
hMemBmp=CreateCompatibleBitmap(hDC,640,480)
SelectObject(hMemDC,hMemBmp)

ReleaseDC(hMainWnd,hDC)

Dim dw As Long
CreateThread(ByVal 0,0,AddressOf(PaintPic),0,0,VarPtr(dw))

End Sub


Sub MainWnd_Paint(hDC As HDC)
BitBlt(hDC,0,0,640,480,hMemDC,0,0,SRCCOPY)

End Sub


Sub PaintPic()
Dim x As Long
Dim y As Long
Dim t As Double
Dim a As Long
Dim b As Long
Dim i As Double
Dim rgbc As DWord

a=3
b=5
t=(3.141592653589793/180)

Randomize
rgbc=RGB(255,255,255)

For i=0.1 to 3600000 Step 0.1
x=Cos(a*t*i)*100+320
y=Sin(b*t*i)*100+240
SetPixel(hMemDC,x,y,rgbc)
InvalidateRect(hMainWnd,ByVal 0,FALSE)
Sleep(1)
Next

End Sub



実行結果。

taylorexpansionさんのブログ-リサージュ曲線