Программирование на smart BASIC. Урок 2

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Программирование на smart BASIC. Урок 2

Post by Mr. Kibernetik »

Цвет задается компонентами R, G и B, которые могут быть от 0 до 1.
В цикле FOR NEXT шаг задается параметром STEP, например:

Code: Select all

FOR R = 0 TO 1 STEP 0.001
...
NEXT R
Команда ON x GOTO работает так: если x=1, то переходит на 1-ю метку из списка, если х=2, то переходит на 2-ю метку и т.д.

Можете еще раз перечитать раздел справки "Основы" чтобы ознакомиться с этими командами.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Программирование на smart BASIC. Урок 2

Post by Mr. Kibernetik »

Мой вариант с флагом:

Code: Select all

graphics
refresh off
x=screen_width()
y=screen_height()/3
for a=0 to 1 step 0.01
graphics clear
fill alpha a
fill color 1,1,1
fill rect 0,0 to x,y
fill color 0,0,1
fill rect 0,y to x,y*2
fill color 1,0,0
fill rect 0,y*2 to x,y*3
refresh
pause 0.001
next a

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 2

Post by Фант »

Или так :D

Code: Select all

 
graphics
refresh off
x=screen_width()
y=screen_height()/3
1 for a=0 to 1 step 0.05
if n%2=0 then a1=a else a1=1-a
graphics clear
fill alpha a1
fill color 1,1,1
fill rect 0,0 to x,y
fill color 0,0,1
fill rect 0,y to x,y*2
fill color 1,0,0
fill rect 0,y*2 to x,y*3
refresh
next a
n+=1
goto 1

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Программирование на smart BASIC. Урок 2

Post by Mr. Kibernetik »

Вместо

Code: Select all

if n%2=0 then
более понятно может быть

Code: Select all

if even(n) then

Alexxl
Posts: 26
Joined: Fri Jan 30, 2015 9:54 am
My devices: iPad 2 iPhone 5

Re: Программирование на smart BASIC. Урок 2

Post by Alexxl »

Мой вариант флага 8-)
Наползает)

100 'метка
A = SCREEN_WIDTH ()'ширина экрана
B = SCREEN_HEIGHT()/3' 1/3 высоты экрана
WHILE A > N'начало цикла
GRAPHICS
FILL COLOR 1,1,1 'белый
FILL RECT 0,00 to 0+N,B
FILL COLOR 0,0,1 'синий
FILL RECT 0,B to 0+N,B*2
FILL COLOR 1,0,0 'красный
FILL RECT 0,B*2 to 0+N,B*3

PAUSE 0.02'настройка скорости заполнения экрана флагом
N = N+5' шаг роста ширины
END WHILE
GOTO 100'переход на метку

Ilirias
Posts: 5
Joined: Tue Apr 07, 2015 10:16 am
My devices: iPad Air

Re: Программирование на smart BASIC. Урок 2

Post by Ilirias »

Привет всем! Мой вариант радуги, но не пойму, где прозрачность( Подскажите, хотел прозрачность переходящую - слева прозрачнее, справа непрозрачнее, где ошибся?

graphics
graphics clear ' очищаем экран
option angle degrees ' переводим в градусы
draw color 1,0,0 ' выбираем красный цвет
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 400 , -180,0 , 0 ' дуга
next x

draw color 1,165/255,0 ' оранжевый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 350 , -180,0 , 0 ' дуга
next x

draw color 1,1,0 ' желтый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 300 , -180,0 , 0 ' дуга
next x

draw color 1,128/255,0 ' зеленый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 250 , -180,0 , 0 ' дуга
next x

draw color 66/255,170/255,1 ' голубой
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 200 , -180,0 , 0 ' дуга
next x

draw color 0,0,1 ' синий
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 150 , -180,0 , 0 ' дуга
next x

draw color 139/255,0,1 ' фиолетовый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 100 , -180,0 , 0 ' дуга
next x

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Программирование на smart BASIC. Урок 2

Post by Mr. Kibernetik »

Ilirias wrote:Привет всем! Мой вариант радуги, но не пойму, где прозрачность( Подскажите, хотел прозрачность переходящую - слева прозрачнее, справа непрозрачнее, где ошибся?

graphics
graphics clear ' очищаем экран
option angle degrees ' переводим в градусы
draw color 1,0,0 ' выбираем красный цвет
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 400 , -180,0 , 0 ' дуга
next x

draw color 1,165/255,0 ' оранжевый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 350 , -180,0 , 0 ' дуга
next x

draw color 1,1,0 ' желтый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 300 , -180,0 , 0 ' дуга
next x

draw color 1,128/255,0 ' зеленый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 250 , -180,0 , 0 ' дуга
next x

draw color 66/255,170/255,1 ' голубой
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 200 , -180,0 , 0 ' дуга
next x

draw color 0,0,1 ' синий
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 150 , -180,0 , 0 ' дуга
next x

draw color 139/255,0,1 ' фиолетовый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 100 , -180,0 , 0 ' дуга
next x
У вас широкой линией (ширина 50 точек) по одному и тому же месту 100 раз рисуется дуга одного цвета, разной прозрачностью. В итоге - просто закрашенная линия.

Ilirias
Posts: 5
Joined: Tue Apr 07, 2015 10:16 am
My devices: iPad Air

Re: Программирование на smart BASIC. Урок 2

Post by Ilirias »

Mr. Kibernetik wrote:
Ilirias wrote:Привет всем! Мой вариант радуги, но не пойму, где прозрачность( Подскажите, хотел прозрачность переходящую - слева прозрачнее, справа непрозрачнее, где ошибся?

graphics
graphics clear ' очищаем экран
option angle degrees ' переводим в градусы
draw color 1,0,0 ' выбираем красный цвет
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 400 , -180,0 , 0 ' дуга
next x

draw color 1,165/255,0 ' оранжевый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 350 , -180,0 , 0 ' дуга
next x

draw color 1,1,0 ' желтый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 300 , -180,0 , 0 ' дуга
next x

draw color 1,128/255,0 ' зеленый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 250 , -180,0 , 0 ' дуга
next x

draw color 66/255,170/255,1 ' голубой
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 200 , -180,0 , 0 ' дуга
next x

draw color 0,0,1 ' синий
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 150 , -180,0 , 0 ' дуга
next x

draw color 139/255,0,1 ' фиолетовый
draw size 50 ' ширина дуги
for x=0 to 100 ' цикл
draw alpha x/100 ' задаем прозрачность
draw arc 450,500 , 100 , -180,0 , 0 ' дуга
next x
У вас широкой линией (ширина 50 точек) по одному и тому же месту 100 раз рисуется дуга одного цвета, разной прозрачностью. В итоге - просто закрашенная линия.
Mr. Kibernetik, а не подскажете, как правильно сделать? По линии там понятно - задаются координаты через х, который и в прозрачности и в цикле, а дуга же задается через центр и радиус...

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Программирование на smart BASIC. Урок 2

Post by Mr. Kibernetik »

Вы определитесь, какой шириной будете рисовать цветные линии разной прозрачности. И из этого уже исходите при рисовании дуг.

Ilirias
Posts: 5
Joined: Tue Apr 07, 2015 10:16 am
My devices: iPad Air

Re: Программирование на smart BASIC. Урок 2

Post by Ilirias »

Mr. Kibernetik wrote:Вы определитесь, какой шириной будете рисовать цветные линии разной прозрачности. И из этого уже исходите при рисовании дуг.
Не совсем понимаю, о чем вы... мне нужно, чтобы дуга меняла прозрачность на протяжении от -180 до 0. Т.е. одна линия должна быть разной прозрачности на своем протяжении. Или так нельзя сделать?

Post Reply