This program restricts mouse pointer in a circle i.e you can’t move mouse out of a circle. When you try to bring mouse pointer outside the circle, mouse pointer is moved to it’s previous location which is inside the circle. Code to restrict mouse in circle is given below :-

C programming code

[pastacode lang=”c” manual=”%23include%3Cgraphics.h%3E%0A%23include%3Cconio.h%3E%0A%23include%3Cdos.h%3E%0A%23include%3Cstdlib.h%3E%0A%23include%3Cmath.h%3E%0A%20%0Aunion%20REGS%20i%2C%20o%3B%0A%20%0Aint%20initmouse()%0A%7B%0A%20%20%20i.x.ax%20%3D%200%3B%0A%20%20%20int86(0X33%2C%20%26i%2C%20%26o)%3B%0A%20%20%20return%20(%20o.x.ax%20)%3B%0A%7D%0A%20%0Avoid%20showmouseptr()%0A%7B%0A%20%20%20i.x.ax%20%3D%201%3B%0A%20%20%20int86(0X33%2C%20%26i%2C%20%26o)%3B%0A%7D%0A%20%0Avoid%20hidemopuseptr()%0A%7B%0A%20%20%20i.x.ax%20%3D%202%3B%0A%20%20%20int86(0X33%2C%26i%2C%26o)%3B%0A%7D%0A%20%0Avoid%20getmousepos(int%20*x%2C%20int%20*y)%0A%7B%0A%20%20%20i.x.ax%20%3D%203%3B%0A%20%20%20int86(0X33%2C%20%26i%2C%20%26o)%3B%0A%20%20%20*x%20%3D%20o.x.cx%3B%0A%20%20%20*y%20%3D%20o.x.dx%3B%0A%20%0A%7D%0A%20%0Avoid%20movemouseptr(int%20x%2C%20int%20y)%0A%7B%0A%20%20%20i.x.ax%20%3D%204%3B%0A%20%20%20i.x.cx%20%3D%20x%3B%0A%20%20%20i.x.dx%20%3D%20y%3B%0A%20%20%20int86(0X33%2C%20%26i%2C%20%26o)%3B%0A%7D%0A%20%0Amain()%0A%7B%0A%20%20%20int%20gd%20%3D%20DETECT%2C%20gm%2C%20midx%2C%20midy%2C%20radius%2C%20x%2C%20y%2C%20tempx%2C%20tempy%3B%0A%20%0A%20%20%20radius%20%3D%20100%3B%0A%20%0A%20%20%20initgraph(%26gd%2C%20%26gm%2C%20%22C%3A%5C%5CTC%5C%5CBGI%22)%3B%0A%20%0A%20%20%20if(!initmouse())%0A%20%20%20%7B%0A%20%20%20%20%20%20closegraph()%3B%0A%20%20%20%20%20%20exit(1)%3B%0A%20%20%20%7D%0A%20%0A%20%20%20midx%20%3D%20getmaxx()%2F2%3B%0A%20%20%20midy%20%3D%20getmaxy()%2F2%3B%0A%20%0A%20%20%20showmouseptr()%3B%0A%20%20%20movemouseptr(midx%2C%20midy)%3B%0A%20%20%20circle(midx%2C%20midy%2C%20radius)%3B%0A%20%0A%20%20%20x%20%3D%20tempx%20%3D%20midx%3B%0A%20%20%20y%20%3D%20tempy%20%3D%20midy%3B%0A%20%0A%20%20%20while(!kbhit())%0A%20%20%20%7B%0A%20%20%20%20%20%20getmousepos(%26x%2C%20%26y)%3B%0A%20%0A%20%20%20%20%20%20if((pow(x-midx%2C2)%2Bpow(y-midy%2C2)-pow(radius%2C2))%3E0)%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20movemouseptr(tempx%2C%20tempy)%3B%0A%20%20%20%20%20%20%20%20%20x%20%3D%20tempx%3B%0A%20%20%20%20%20%20%20%20%20y%20%3D%20tempy%3B%0A%20%20%20%20%20%20%7D%0A%20%0A%20%20%20%20%20%20tempx%20%3D%20x%3B%0A%20%20%20%20%20%20tempy%20%3D%20y%3B%0A%20%20%20%7D%0A%20%0A%20%20%20closegraph()%3B%0A%20%20%20return%200%3B%0A%7D” message=”” highlight=”” provider=”manual”/] [ad type=”banner”]

 

Categorized in: