FreeBasic
Главная
Вход
Регистрация
Среда, 16.10.2024, 06:32Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Рисование линий по кругу(анимация)
haavДата: Четверг, 24.01.2013, 18:29 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Рисование линий по кругу(анимация)


Простенький пример, может кому пригодится для создания часов smile

Кто автор, не знаю



Код
Const SCREEN_W As Integer = 640
Const SCREEN_H As Integer = 480
Const LINE_LEN As Integer = 100
Const PI As Double = 4 * Atn(1)

Dim As Integer ox, oy, ex, ey
Dim As Integer Angle, Sec
Dim As Double adj, opp

ScreenRes SCREEN_W, SCREEN_H, 8

ox = (SCREEN_W \ 2) - 1
oy = (SCREEN_H \ 2) - 1

For Sec = 0 To 59
    Angle = (Sec * 6) - 90
    adj = (Cos(Angle * (Pi / 180))) * LINE_LEN
    opp = (Tan(Angle * (Pi / 180))) * adj
    ex = ox + adj
    ey = oy + opp
    Line(ox, oy)-(ex, ey)
    Sleep 100
Next Sec

Sleep


Прикрепления: 4142801.png (30.6 Kb)


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Среда, 21.05.2014, 23:29 | Сообщение # 2
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
А как в подобных примерах можно менять толщину рисуемой линии?
 
haavДата: Четверг, 22.05.2014, 07:43 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Цитата WQ ()
А как в подобных примерах можно менять толщину рисуемой линии?


Замени алгоритм рисования Line . Вот один из примеров, написанный BasicCoder2(ом):

Код
Sub thickLine(x1 As Integer,y1 As Integer,x2 As Integer,y2 As Integer,size As Integer,c As UInteger)
  Dim As Integer x,y
  If x1 = x2 And y1 = y2 Then
   Circle (x1, y1), size, c, , , , f
  ElseIf Abs(x2 - x1) >= Abs(y2 - y1) Then
   Dim K As Single = (y2 - y1) / (x2 - x1)
   For I As Integer = x1 To x2 Step Sgn(x2 - x1)
    x = I
    y = K * (I - x1) + y1
    Circle (x,y), size, c, , , , f
   Next I
  Else
   Dim L As Single = (x2 - x1) / (y2 - y1)
   For J As Integer = y1 To y2 Step Sgn(y2 - y1)
    x = L * (J - y1) + x1
    y = J
    Circle (x,y), size,c,,,,f
   Next J
  End If
End Sub


Последние два параметра функции: ширина пера и цвет пера


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Четверг, 22.05.2014, 21:44 | Сообщение # 4
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Большое спасибо!
То, что нужно!
 
  • Страница 1 из 1
  • 1
Поиск: