Advertisement
Guest User

Untitled

a guest
May 29th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 1.67 KB | None | 0 0
  1. ; Picture Rotater & scaler
  2. ; Author: Aleksey
  3. alias atr return $calc($1 * $pi / 180)
  4. alias rst {
  5.   window -apd +e @px 100 100 518 540
  6.   var %kart $mircdirMapper\texmap4.bmp
  7.   ;директория вашей картинки
  8.   var %h = $pic(%kart).height,%w = $pic(%kart).width
  9.   window -apd +e @mpkt 100 100 $calc(%w + 18) $calc(%h + 40)
  10.   drawpic @mpkt 0 0 %kart
  11.   var %a = $atr(0),%ae = $atr(2),%ad = $atr(5)
  12.   ;a - начальный угол, ae - конечный угол, ad - на сколько менять угол в цикле
  13.   while (%a < %ae) {
  14.     dll WhileFix.dll WhileFix .
  15.     var %scale $calc(1 / (1 + 0.2 * $cos($calc(%a * 4))))
  16.     ;тут можно побаловаться с масштабом( < 1 - увеличение, > 1 уменьшение)
  17.     var %sinA = $sin(%a),%cosA = $cos(%a)
  18.     var %x0 $calc((%w / 2 + %scale * ((0 - %w / 2) * %cosA + %h / 2 * 1.2 * %sinA)) * 65536)
  19.     var %y0 $calc((%h / 2 + %scale * ((0 - %h / 2) * %cosA - %w / 2 * %sinA / 1.2)) * 65536)
  20.     var %xdx $calc(%scale * %cosA * 65536)
  21.     var %xdy $calc(%scale * %sinA * 65536 / 1.2)
  22.     var %ydx $calc((0 - %scale) * %sinA * 65536 * 1.2)
  23.     var %ydy $calc(%scale * %cosA * 65536)
  24.     var %y 0
  25.     while (%y < %h) {
  26.       dll WhileFix.dll WhileFix .
  27.       var %x1 = %x0,%y1 = %y0,%x = 0
  28.       while (%x < %w) {
  29.         dll WhileFix.dll WhileFix .
  30.         var %xp = $>>(%x1,16),%yp = $>>(%y1,16)
  31.         if (%xp < %w && %yp < %h) drawdot -r @px $getdot(@mpkt,%xp,%yp) 1 %x %y
  32.         else drawdot @px 1 1 %x %y
  33.         inc %x1 %xdx
  34.         inc %y1 %xdy
  35.         inc %x
  36.       }
  37.       inc %x0 %ydx
  38.       inc %y0 %ydy
  39.       inc %y
  40.     }
  41.     inc %a %ad
  42.   }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement