Code archives/Graphics/Image warping
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
From Blitz et cetera article Image used: | |||||
;Free image transformation - point warping by Matt Merkulov ;Controls: ; Drag mouse with left button pressed - from initial point position to resulting ; Press right mouse button to render picture Type dot Field x#, y#, dx#, dy# End Type Graphics 640, 480, 32, 2 i = LoadImage("image2.jpg") DrawBlock i, 0, 0 For x = 0 To 639 Step 639 For y = 0 To 479 Step 479 d.dot = New dot d\x = x d\y = y Next Next Repeat If MouseDown(1) And md = 0 Then md = 1 d.dot = New dot d\x = MouseX() d\y = MouseY() End If If MouseDown(1) = 0 And md Then d\dx = d\x - MouseX() d\dy = d\y - MouseY() Line d\x, d\y, MouseX(), MouseY() md = 0 End If If MouseDown(2) Then Exit Forever For y = 0 To 479 For x = 0 To 639 vx# = 0 vy# = 0 k# = 0 For d = Each dot dx# = x - d\x dy# = y - d\y r# = 1.0 / (dx# * dx# + dy# * dy# + .001) vx# = vx# + r# * d\dx vy# = vy# + r# * d\dy k# = k# + r# Next vx# = vx# / k# vy# = vy# / k# WritePixel x, y, ReadPixel(x + vx#, y + vy#, ImageBuffer(i)) Next Next WaitKey |
Comments
None.
Code Archives Forum