Покажем на двух примерах как используются SetMouse и GetMouse.
Нарисуем с помощью SetMouse круг))) Нет, рисовать будет конечо же pset, а SetMouse будет указывать где рисуется точка.
Для рисования окружности воспользуемся параметрическим уравнением
dim as double x, y, t
const as double PI = 3.1415926835
ScreenRes 800,600
for t=0 to 2*PI step 2*PI/300
x = 400 + 200*COS(t)
y = 300 + 200*SIN(t)
SetMouse x,y
pset (x,y),11
sleep 90
next t
sleep
Но более интересно использовать GetMouse. Порисуем мышью - узнаем где находится курсор мыши и там поставим точку.
Dim As Integer x, y, b, r
ScreenRes 800, 600, 8
Do
r = GetMouse (x, y, , b)
If r = 0 Then
If b And 1 Then pset (x,y),11
If b And 2 Then cls
End If
Loop While Inkey = ""
End
Жаль что линия выглядит прерывистой, попробуем это исправить. Будем не точку ставить, а рисовать линию к следующей точке. Только вот первый раз, после нажатия кнопки мыши, точку всё же прийдётся поставить.
Dim As Integer x, y, b, r, lb
ScreenRes 640, 480, 8
lb=0
Do
r = GetMouse (x, y, , b)
If r = 0 Then
If (b And 1) then
if lb=0 then pset (x,y),11: lb=1
if lb=1 then line -(x,y),11
else lb=0
end if
If b And 2 Then cls: lb=0
End If
Loop While Inkey = ""
End
Добавим переменную lb
- она будет устанавливаться в 1 если левая кнопка нажата, и устанавливаться в 0 - если не нажата.
Умный компилятор FreeBASIC))) - разобрался)) куда отнести else lb=0
, к какому из трёх операторов if
if (b and 1) then
if lb=0 then pset (x,y),11: lb=1
if lb=1 then line -(x,y),11
else lb=0
end if
if (b and 1) then
if lb=0 then pset (x,y),11: lb=1
if lb=1 then line -(x,y),11 else lb=0
end if
✅
@sergiy Поздравляю! Вы получили личную награду!
С Днём Рождения - 2 лет на Голосе
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
Не пропустите прочитать последний пост в Доске почета!
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
spinner, littleboo, aim, ianboil, analise, francisgrey, strecoza, mishka, sergiy, neo, vako, rbrown, gildar, andrvik, max-max, zoss, dimarss, tristamoff, kilobucks, ohlamoon, maksina, zlody, dr-boo, amikphoto, arsar, volv, nefer, turkish-r, renat242, markvial, nikalaich, gryph0n, voltash, ladynazgool, decha, rubin, francesco, maxiandr, exan, retoldname, stranniksenya, alikssandra, gapel, polyakov, galerina, acidgarry, aivanouski, oagalakova, borisss, candy777, optimist, edsaw, yurchello, dayver, bammbuss, dmitrijv, seagull15, lightabsolute, manavendra, mr-nikola, ondantr, vladsm, mirgais, varja, prifix, mp42b, abloud, dignityinside, process, nikulinsb, tulencha, amalinavia, kito-boy, vsebudethorosho, nikitosuna, izbushka, astramar, propoker, cryptovisitor, zelivsky, html, vredinka2345, kash47, makcl, marina-spring, azarovskiy, funt33, samael27, kalter, mister-omortson, apnigrich, siddxa, cryptobandera, doublingseason, necrogenesis, photofreediver, maryatekun, lologom, prezza, yroslav94, akva22, tyi-ra, mjataura, elcpa, dobrotanya, boliwar, veta-less, irkinmick, svetozarhobbot, archual, automedia, alexxela, burger-knig, zirodin, cryptenthusiast, veterperemen, flint, charisma
Поэтому я тоже проголосовал за него!
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
Сюда приплывал Моби Дик
✅🤙 🚀