Перейти к содержимому

cloud

Пользователи
  • Публикации

    43
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Сообщения, опубликованные пользователем cloud


  1.   Программка написанная на love2D рисует фракталы, ставя новую точку проходя определённое расстояние от предыдущей точки до случайно выбранной вершины предварительно нарисованной фигуры.

       Подробнее в этом видео.

       Как использовать:

    Запускаем, ставим мышью несколько точек, выбираем расстояние, которое будет проходить точка (начальная ставится случайно), пробел - пошагово, А - автоматически рисуем. Ну там в окошке есть инфо по управлению.

       По умолчанию расстояние 1/2, идеально для треугольника, для  фигур с большим количеством точек лучше уменьшить. 

       В общем играйтесь кому интересно, скачать скомпилированный вариант можно с гугл диска.

          eAO7wqqCxJoGRA.png

     

    io.stdout:setvbuf("no")
    
    local windowHeight
    local windowWidth
    local fullscreen = false
    
    local tab = {}
    local uptime = 0
    local iter = 0
    local showInfo = true
    local stepMode = true
    local speed = 1
    local dist = 2
    
    local f = {}
    local t = {}
    
    local function drawPoint(cor)
      love.graphics.points(cor[1], cor[2])
    end
    
    local function newPoint()
      if #f >= 2 then
        local r = love.math.random(1, #f)
        t[1] = f[r][1]+(t[1]-f[r][1])/dist 
        t[2] = f[r][2]+(t[2]-f[r][2])/dist 
        tab[t[1]] = t[2]
        iter = iter + 1
        return t
      end
    end
    
    function love.mousereleased(x, y, button)
       if button == 1 then
          f[#f+1] = {x, y}
       end
    end
    
    function love.keyreleased(key)
      if key ~= nil then print(key) end
      if key == "h" then
        showInfo = not showInfo
      elseif key == "r" then
        tab = {}
        t ={love.math.random(10, windowHeight - 10), love.math.random(10, windowWidth - 10)}
        f ={}
        iter = 0
        stepMode = true
      elseif key == "a" then
        stepMode = false
      elseif key == "kp-" then
        if speed > 1 then speed = speed / 2 end
      elseif key == "kp+" then
          speed = speed * 2
      elseif key == "pageup" then
        if dist > 1 then dist = dist - 0.1 end
      elseif key == "pagedown" then
          if dist <= 5 then dist = dist + 0.1 end
      elseif key == "space" then
        stepMode = true
        newPoint(t)
      elseif key == "f" then
        fullscreen = not fullscreen
      end
    end
    
    
    function love.load()
      love.window.setTitle("Fractals Random Generator_v1")
      love.window.setFullscreen(fullscreen, "desktop")
      print(windowHeight, windowWidth)
      windowHeight = love.graphics.getHeight()
      windowWidth = love.graphics.getWidth()
      t ={love.math.random(10, windowWidth - 10), love.math.random(10, windowHeight - 10)}
    end
    
    
    function love.update(dt)
      love.window.setFullscreen(fullscreen, "desktop")
      windowHeight = love.graphics.getHeight()
      windowWidth = love.graphics.getWidth()
      if not stepMode then
        for i=1, speed do
          newPoint(t)
        end
      end
      uptime = uptime + dt
      love.keyreleased()
      love.mousereleased()
    end
    
    
    function love.draw()
      love.graphics.setColor(0.5, 0.5, 1)
      for i=1, #f do 
        drawPoint(f[i])
      end
      
      for k,v in pairs(tab) do
        love.graphics.points(k,v)
      end
      if showInfo then
        love.graphics.setColor(1, 1, 0.2)
        for i=1, #f do
          --love.graphics.print("P"..i, f[i][1], f[i][2])
          love.graphics.circle("fill", f[i][1], f[i][2], 2)
        end
    
        love.graphics.print("FPS: "..love.timer.getFPS(), 10, 10)
        love.graphics.print("Time: " .. uptime, 10, 25)
        love.graphics.print("Points: " .. iter, 10, 40)
        love.graphics.print("distance: 1/".. dist, 10, 55)
        love.graphics.print("speed: ".. speed, 10, 70)
    
        love.graphics.print("'SPACE' - next step", 10, windowHeight - 80)
        love.graphics.print("'A' - auto draw", 10, windowHeight - 65)
        love.graphics.print("'R'- reset", 10, windowHeight - 50)
        love.graphics.print("'F' - fullscreen", 10, windowHeight - 35)
        
        love.graphics.print("'pgUp/pgDown' - change distance to top of the figure.", 150, windowHeight - 20)
        love.graphics.print("'-/+' - change speed.", 150, windowHeight - 35)
    
        love.graphics.print("Point", t[1], t[2])
      end
      love.graphics.setColor(1, 1, 0.2)
      love.graphics.print("'H'- show/hide info", 10, windowHeight - 20)
    end
     

     

     

    • Нравится 1

  2. Варианты следующего этапа диалога:

    1. Попытка незаметно сменить тему с использованием большого количества буков и ссылок на непроверенные источники.

    2. Искажённое интерпретирование данных, якобы доказывающее что-либо. 

    3. Переход на личные оскорбления.

    4. Создание образа уставшего от бесполезного спора с дураком человека.

    5. Игнор (практически невозможно).

     

    *могут совмещаться.

    • Нравится 1

  3. Ну, nailfor, раз ты достал свои причиндалы, то и я покажу свои во всей красе :D  


    Сравнивать "лучшие кварцевые" часы с "атомными" это тоже самое, что утверждать что лексус дороже запорожца. В обоих стоит двс. Оба имеют 4 колеса. У обоих есть руль и даже кресла для водителя и пассажиров имеются. Но один стоит дороже и ездить на нем комфортнее.

     

       Насколько я понял, это попытка реабилитироваться после заявления - "Да в том, что в сознании обывателя "атомные" часы - самые точные. На самом деле они не точнее обычных, наручных кварцевых часов, а в случае с переменным ускорением так и много хуже тех часов"

      

    Ткнуть в псевдоисточник псевдо информации под названием "педевикия" - это не опровержение.

      

       Слушай, братан, ты кидаешь ссылки на менее проверяемые источники

     

     

    Т.е. это всё тот же кварцевый резонатор, к которому прилепили надсмотрщика в виде отдельной колебательной системы.

     

       Колебания происходят внутри ядра, и определяются по его массе, это другая, в рот наоборот, технология. Но суть не в том, даже при всех погрешностях, неточностях и отставаниях, точнее кварцевых. (Не понимаю, как кто-то может так сильно ненавидеть Часы! :smile3: )

     

     

    Для стационарных устройств эта поправка разовая - на локальный уровень гравитации, для движущихся - типа спутников гэпээс - приходится подстраивать постоянно. По проверенным данным уход "сверхточных атомных часов", тех самых, которые 15миллиардов лет на воде и хлебе, всего за сутки составляет одну 1мкс. За год набегает 31секунда ))

     

       Ошибочка. Отклонение часов на спутниках не меняется, оно постоянно, и полностью соответствует СТО и ОТО, (хотя, если подумать, может просто тупые учёные вместо проверенных и суперточных кварцевых часов запихнули на спутники атомные :facepalm: теперь ночами не спят - всё корректируют.)

     

    Короче, мальчик, включай мозги и не смотри больше этого Катющика :threaten:


  4.    Для сравнения размеров пиписек диплом не обязателен. Я не говорил про абсолютно точные часы, я опроверг сравнение nailfor атомных часов с кварцевыми. "Господи, какая чушь" - это не аргумент. Вы как обезьянки, пытаетесь показать окружающим свой уровень интеллекта, но даже не умеете вести конструктивный диалог. 

       Если нашли ошибку в суждениях собеседника - укажите где конкретно, приведите аргументы, тогда обсудим это и Возможно тот, кто не прав поймёт и признает свою ошибку, а вашими методами разве что самку можно привлечь, да и то не всякую  ;) .


  5. Да в том, что в сознании обывателя "атомные" часы - самые точные. На самом деле они не точнее обычных, наручных кварцевых часов, а в случае с переменным ускорением так и много хуже тех часов.

     

     

    Глупости, вот тебе вики в руки.  ;)


  6. Можно просто очищать переменную _ перед использованием, если она так необходима.

    Можно, но зачем? Проще её не использовать.

     

    Если бы автор темы умел дебажить принтами, давно бы эту проблему решил сам.

    Ну вот что сложного? Lua выдал строку где произошла ошибка. Например строка 42, в которой вызывается функция lampochka(pochka)

    Написал print(pochka) и проверил чему равна переменная в строке с ошибкой. Эта информация практически всегда решает проблему позволяя понять где код работает не так и исправить.

     

    Насколько я знаю в природе есть константы и есть переменные. А о существовании некой переменной, которая бы мифическим образом сама себя стирала никто не говорил.

    1. Я принтил всё, кроме переменной "_".

    2. Ошибки не было, просто event.pull не обрабатывал никакие события из-за некорректного фильтра.

    3.Я ошибался насчёт переменной "_", каюсь.

     

    P.S. qwertyMAN, ты чё такой агрессивный?


  7. В том то и дело. Когда ты доходишь до цикла, _ уже что-то содержит и начинает влиять на фильтрацию. А вики, похоже, надо подкорректировать. Переменная _ такая же переменная как и все остальные. Ничего особенного в ней нет.

    Спасибо тебе огромное! А я думал, что если её используют как пустую переменную - она не хранит данных. Автор статьи на вики похоже тоже так думал.

    Респект и  :smile9:


  8.  

     

    event.pull([eventName: string], [timeout: number])
     

    там наоборот, сначала imeout, затем eventName, если первая переменная - строка, то таймаут пропускается.

     

     

    Зачем используешь переменную _ в качестве параметра event.pull? Она к тому времени уже не пустая. Делай так

    local _, clientAddr, serverAddr, _, _, _ = event.pull("modem_message", nil, nil, 666, nil, "gogo")
    

    вместо

    local _, clientAddr, serverAddr, _, _, _ = event.pull("modem_message", _, _, 666, _, "gogo")
    

    эта строка работает нормально, тем более на вики так учат. Проблема в следующем event.pull(), тот, который в цикле.

    • Нравится 1

  9.     Начал писать радиоуправляемого робота, всё как обычно начиналось хорошо, но произошла такая хрень! 

    Не хочет обрабатывать вот это событие:

    local a1, a2, a3, a4, a5, ev = event.pull("modem_message", _, serverAddr, 666)

    если делаю вот так:

    local a1, a2, a3, a4, a5, ev = event.pull("modem_message")

    всё работает, вот так опять нет:

    local a1, a2, a3, a4, a5, ev = event.pull("modem_message", _, _, 666)

    в общем перебрал все варианты, не могу понять где ошибка. Не обращайте внимание на лишние принты и переменные, это я уже не знал куда смотреть).

         Вот код:

    Клиент:

    local r = require("robot")
    local com = require("component")
    local event = require("event")
    local modem = com.modem
    
    local doit = {}
    doit.up = r.up
    doit.down = r.down
    doit.left = r.turnLeft
    doit.right = r.turnRight
    doit.around = r.turnAround
    doit.forward = r.forward
    doit.back = r.back
    doit.swing = r.swing
    doit.swingUp = r.swingUp
    doit.swingDown = r.swingDown
    doit.use = r.use
    doit.useUp = r.useUp
    doit.useDown = r.useDown
    doit.place = r.place
    doit.placeUp = r.placeUp
    doit.placeDown = r.placeDown
    
    
    modem.close()
    modem.open(666)
    modem.setStrength(500)
    
    
    local _, clientAddr, serverAddr, _, _, _ = event.pull("modem_message", _, _, 666, _, "gogo")
    modem.send(serverAddr, 666, clientAddr)
    print(serverAddr.."||")
    print(clientAddr)
    print("приступаю к циклу")
    while true do
    	print("цикл")
        local a1, a2, a3, a4, a5, ev = event.pull("modem_message", _, serverAddr, 666) --------- FUCK!!!!!!!!!!
        print("считал сообщение")
        doit[ev]()
        print(a1,a2,a3,a4,a5,ev)
    end
    

    и сервер:

    local com = require("component")
    local event = require("event")
    local modem = com.modem
    
    modem.close()
    modem.open(666)
    modem.setStrength(500)
    
    modem.broadcast(666, "gogo")
    local _, _, _, _, _, clientAddr = event.pull("modem_message", _, _, 666)
    print(clientAddr)
    
    while true do
        local msg = io.read()
        modem.send(clientAddr, 666, msg)
        print("--"..msg)
    end
    

    заранее спасибо тем, кто откликнется. 


  10.  

     

    Гениально!! Накрафтил 9 роботов для автоматизации, упал с 4 блоков, умер, квант и релокатор упали в лаву.
     

    Да Ё-МОЁ! это игра! В играх так принято - умирать, что-то терять, находить... Если не нравится - играй у себя в креативе, или открывай любую среду разработки и пиши код без страха потерять что-либо. А насчёт уровня хардкорности - у каждого свои личные предпочтения.

    • Нравится 1

  11. Внесу и я свой вклад  :rap: Я считаю, что нужно добавить TerraFirmaCraft, там земля осыпается, нужно собирать палочки и камушки, реализм в общем, а таумкрафт я тоже не знаю, и учиться не хочу, а ещё смартмувинг надо - по горам карабкаться и "рыбкой" в воду прыгать. 

    P.S. Народ, хорош уже плакаться, сказал своё мнение - молодец, посмотрим что получится. Я когда в ванильный майн играл, даже не задумывался попробовать моды, но теперь без них играть не буду. Может вам понравится то, что задумал Алекс.

    • Нравится 2

  12.  

     

    Кому интересно, вот как-то так  http://puu.sh/ou59W/65d4e2e1b2.jpg  приблизительно будут генериться топовые руды (минералы) на бумере, в которых есть осмий, германий титан и прочее, которые крайне необходимы в развитии.
     

        На генерацию TerraFirmaCraft похоже.


  13. Время остановится для ракеты т.к. она не является инерциальной системой отсчета. см. Парадокс близнецов

     

       Да, знаком и согласен. 

     

    Если бы брат путешественник никогда не возвращался на землю, а продолжал бы лететь не меняя систему отсчёта, с его точки зрения отставали бы часы брата землянина, а с точки зрения землянина отставали бы часы путешественника. Если бы он мог вернуться например через портал, вот тогда был бы настоящий парадокс.  :umnik2:

    P.S. Во всём виновата относительность одновременности событий. Вообще сложная для понимания тема.

    • Нравится 2

  14.  

     

    А в чем тут подвох? Это же известный парадокс близнецов. Если не учитывать время на разгон и разворот, то для путешественника в ракете полет будет длиться доли секунды.
     

        Как я понимаю тут вопрос в том, что как ракета двигалась относительно планеты, так и планета двигалась относительно ракеты. Для кого время замедлится.

    • Нравится 1

  15.  

     

    Но пока не будет, неоспоримых доказательств, что при гравитационном линзировании - отклоняются, не только фотоны, но и радиоволны с более низкими частотами, вплоть до 0.00...01 Гц ... я буду считать гравитацию - силой.
     

        Даже не знаю как это можно доказать или опровергнуть. 

        P.S. Если я не ошибаюсь свет всех частот изменяет траекторию одинаково, я думаю с радиоволнами меньших частот дело обстоит так-же.

×
×
  • Создать...