FreeBasic
Главная
Вход
Регистрация
Понедельник, 30.12.2024, 19:20Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Рисование дерева с помощью Push - листа
haavДата: Четверг, 12.07.2012, 11:18 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Рисование дерева с помощью Push - листа


Как - то хотелось написать Push лист. В принципе написал, потом fxm немного подправил, чтобы сделать его поцивильнее, но это не суть. Написать то написал, но захотелось где-то и использовать. И тут я вспомнил, что на liberty basic , был пример рисования дерева. Взял и переписал его, в итоге вот что вышло:



Code

Type PushList
    d As Integer
    p As PushList Ptr
    Declare Sub PushValue(ByRef top As PushList Ptr , ByVal d As Integer)
    Declare Function PopValue(ByRef top As PushList Ptr) As Integer
End Type

Sub PushList.PushValue(ByRef top As PushList Ptr , ByVal d As Integer)
    top = New PushList(d, top)
End Sub

Function PushList.PopValue(ByRef top As PushList Ptr) As Integer
    Dim pv As PushList Ptr = top
    Function = pv->d
    top = top->p
    Delete pv
End Function

Dim Shared top As PushList Ptr
Screen 16
Dim Shared As Integer _
angle = 0 , _
delta = 10 , _
distance = 60
Draw "B M256,300 C2"  
Sub DrawTree()  
   If (distance > 0) Then     
     Draw "TA" & -angle & "U" & distance
     angle+=30
     Sleep(300)
     top->PushValue(top, distance)
     distance = distance - delta
     DrawTree()
     angle-=60
     DrawTree()
     angle+=30
     distance=top->PopValue(top)  
     Draw  "TA" & 0 - angle & "BD" & distance   
   EndIf
End Sub
DrawTree()
Sleep
Прикрепления: 6657944.png (22.3 Kb)


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
  • Страница 1 из 1
  • 1
Поиск: