Page 1 of 1

Функция мультитача для взаимодействия

Posted: Tue Jun 20, 2017 3:58 pm
by Mr. Kibernetik
В SPL есть функция #.pan, которая распознает мультитачевое взаимодействие пользователя с экраном — одновременные перемещение, масштабирование и поворот.
В качестве примера работы функции #.pan, эта программа позволяет пользователю интерактивно двигать, масштабировать и вращать крестик на экране с помощью привычных мультитачевых жестов.

Code: Select all

xc,yc = #.scrsize()
xc /= 2; yc /= 2
sc = 1; ac = 0
moved = 0
#.scroff()
drawlines(xc,yc,sc,ac)
>
? #.pan()
  moved = 1
  dx,dy,ds,da = #.pan(4)
  drawlines(xc+dx,yc+dy,sc*ds,ac+da)
!
  ? moved
  moved = 0
  xc += dx; yc += dy; sc *= ds; ac += da
  .
.
<
drawlines(xc,yc,sc,ac)=
  s = 50*sc
  ss = s*#.sin(ac)
  cs = s*#.cos(ac)
  #.scrclear()
  #.drawsize(4)
  #.drawline(xc+ss,yc-cs,xc-ss,yc+cs)
  #.drawline(xc-cs,yc-ss,xc+cs,yc+ss)
  #.scr()
.
wp_ss_20170620_0003.png
wp_ss_20170620_0003.png (25.84 KiB) Viewed 2995 times
wp_ss_20170620_0004.png
wp_ss_20170620_0004.png (49.4 KiB) Viewed 2995 times