Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 13.04.2020, 13:47   #1
MakarovDs
Пользователь
 
Регистрация: 10.01.2020
Сообщений: 28
По умолчанию

Сделал генератор случайных фракталов, думаю что еще добавить??? Хочу сделать позиционирование в 3d, и изменять положение ствола, минимальную, и максимальную длину линии и прочие прелести, нужно привязать к формам, Просто одному писать код довольно занудно, хочется с кем-то, есть здесь кто??

Код:
<html><head>
  <style>
    #tree {
      position: relative;
      cursor: pointer;
    }
  </style><title>Дерево Пифагора</title><center><script type="text/javascript">
      // функция рисует под углом angle линию из указанной точки длиной ln
   //   window.onload = function Ireb() {
      function drawLine(x, y, ln, angle) {
        context.moveTo(x, y);
        context.lineTo(Math.round(x + ln * Math.cos(angle)), Math.round(y - ln * Math.sin(angle)));
      }
      // Функция рисует дерево
      function drawTree(x, y, ln, minLn, angle) {
        if (ln > minLn) {
          ln = ln * 0.75;
          var random = Math.floor(Math.random() + Math.random()+Math.random()* Math.random() + Math.random()+Math.random()*2 );
          drawLine(x, y, ln, angle);
          x = Math.round(x + ln * Math.cos(angle));
          y = Math.round(y - ln * Math.sin(angle));
          drawTree(x, y, ln, minLn, angle + Math.PI / 4);
          drawTree(x, y, ln, minLn, angle - Math.PI / random);
          // если поставить угол Math.PI/4 , то выйдет классическое дерево
        }
      }
      // Инициализация переменных
      function init() {
           var canvas  = document.getElementById("tree"),
            x       = 20 + (canvas.width / 2),
            y       = -250 + canvas.height,  // положении ствола
            ln = 120,                  // начальная длина линии
            minLn   = 5;                    // минимальная длина линии
        canvas.width  = 650; // Ширина холста
        canvas.height = 600; // высота холста onchange="change()"
      context = canvas.getContext('2d');
 
        context.fillStyle   = '#fff'; // цвет фона
        context.strokeStyle = '#020'; //цвет линий
        context.fillRect(0, 0, canvas.width, canvas.height);
        context.lineWidth = 2; // ширина линий (this.innerHTML)
        context.rect(0,500,5,5);
        context.beginPath();
        drawTree(x, y, ln, minLn, Math.PI / 2);
        context.stroke();
      }
      
    function moveI(){
         
          intervalID = setInterval(init, 1000);
    }
     

  
let intervalID;
      
       function moveII(){
         
       clearInterval(intervalID, 1000);
       	
       }
	   
 function MoveRight(){
    
      let start = Date.now();

      let timerI = setInterval(function() {
        let timePassed = Date.now() - start;

        tree.style.right = timePassed / 6 + 'px';

        if (timePassed > 2000) clearInterval(timerI);

      }, 20);
    }
	
	
       function MoveLeft() {

           let startI = Date.now();

           let timer = setInterval(function () {
               let timePassedI = Date.now() - startI;

               tree.style.left = timePassedI / 6 + 'px';

               if (timePassedI > 2000) clearInterval(timer);

           }, 20);
		   
       }
    </script></head></center><body>
<table width="100%" border="1" cellspacing="1" cellpadding="4">
   <caption align="bottom"></caption>
   <tr> 
    <th><input type="text" id="name" placeholder="положение ствола" onclick="(tree)"></th>
	<th><input type="text" id="nameI" placeholder="минимальная длина линии" onclick=""></th>
	<th><input type="text" id="nameII" placeholder="начальная длина линии" onclick="(this.innerHTML)"></th>
   </tr></table>
  
<table width="100%" border="1" cellspacing="1" cellpadding="4">    
<caption align="bottom">Generator Fractals</caption><tr> 
<td><button onclick="moveI()">Start Random Fractals </button>
<button onclick="moveII()">Stop Random Fractals</button>
  <button onclick="MoveRight()">right</button> 
  <button onclick="MoveUp()">Up</button> 
  <button onclick="MoveDown()">Down</button> 
  <button onclick="MoveLeft()">left</button> 
</td></tr></table><br><canvas id="tree"></canvas></body></html>
Фото
Изображения
Тип файла: png загруженное.png (55.6 Кб, 77 просмотров)
MakarovDs вне форума Ответить с цитированием
Старый 13.04.2020, 13:56   #2
MakarovDs
Пользователь
 
Регистрация: 10.01.2020
Сообщений: 28
По умолчанию

Там можно сделать с setTransform но он что-то не очень, ибо вращается 2d плоскость, если бы в 3d сделать генерацию комнат было бы вау!! Но пока что простенький генератор получился.

Последний раз редактировалось MakarovDs; 13.04.2020 в 13:58.
MakarovDs вне форума Ответить с цитированием
Старый 16.04.2020, 12:01   #3
MakarovDs
Пользователь
 
Регистрация: 10.01.2020
Сообщений: 28
По умолчанию

Что-то тут все молчат
MakarovDs вне форума Ответить с цитированием
Старый 10.06.2020, 04:26   #4
MakarovDs
Пользователь
 
Регистрация: 10.01.2020
Сообщений: 28
По умолчанию

https://jsfiddle.net/p1k8z3xv/
MakarovDs вне форума Ответить с цитированием
Старый 10.06.2020, 15:22   #5
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 552
По умолчанию

Проверим скачают ли если программа готовая

Скачав .htm.txt в названии стереть .txt оставив расширение .htm
и стартовав браузер строит фрактал

Только желательно чтобы построился фрактал сразу
ну хоть какой-нибудь а пока побоятся жать Старт
Вложения
Тип файла: txt MakarovDs_fractal.htm.txt (3.8 Кб, 4 просмотров)
учим C# зная basic & excel
https://programmersforum.ru/showthre...=327446&page=9
никому никогда ничего не рекомендую и пишу только про себя

Последний раз редактировалось сфинкс; 10.06.2020 в 21:21.
сфинкс вне форума Ответить с цитированием
Старый 10.06.2020, 20:50   #6
Berners-Lee
Пользователь
 
Регистрация: 18.05.2020
Сообщений: 21
Хорошо

По-моему, неплохо.
Berners-Lee вне форума Ответить с цитированием
Старый 15.11.2020, 10:23   #7
MakarovDs
Пользователь
 
Регистрация: 10.01.2020
Сообщений: 28
По умолчанию

Вообще думаю проблема фракталов с точки зрение эстетичности в том, что они слишком повторяются, иными словами им не хватает стохастичности, есть идея такая - сделать трехмерное пространство на двухмерной плоскости, только не знаю как это сделать на canvas'e? И либо спутать самоподобия, и сделать такое симулированное гиперпространство, назовем это гиперкуб хорэдема

Гиперкуб Хорэдема это - пространство где элементы измерений, являются комбинация случайных элементов математических преобразований, а также случайных комбинированных логики элементов, с их взаимодействием.

Устройство будет таким - гиперкуб разделяется на ячейки комнаты видимые размером на 5 метров в высоту, и на 5 метров в ширину, все эти комнаты являются комбинацией случайных, элементов логики пространства, и случайного кода, по мере ухождения вниз по комнатам, меняется организация самих ячеек случайным образом, комбинация логики в систему математических преобразований всегда происходит по циклу.

К примеру (берем случайные объекты логики и выборки 1, и между этими объектами логики образуется случайная логика реализации, только главное сделать так что-бы игрок как-то мог взаимодействовать что-бы это приносило чувство удивления, вау, чувство интереса, красоты, и т.д ):

золото |->в чем?-V
|->где? ->в космосе?->да->значит алгоритм создает космос->какого размера(выбор случайного размера)->нет?->выбор случайного объекта логики к примеру->пустыня
|-> из-за чего оказалась? -> закинули марсиане -> откуда они? -> и тд

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

#1 Гиперкуб хорэдема не измеряется типичной системой координат, по сути он состоит из ячеек неевклидовой геометрии, где пространство в нем это комбинация математических преобразований, логики взаимодействий, и абстракций. Эти комбинации выстраивают замкнутую цепочку, и по золотому сечению встраивает случайно выбранный элемент.
#2 Фрактализация в гиперкубе хорэдема тоже система случайной подборки абстрактных элементов архитектуры, к примеру: иррациональность, древовидность, комплексность, холмистость.

хх.
порталы: (свойства порталов дается методом комбинаций элементов логики с элементами взаимодействия объектов логики, таким образом всегда образуется новый тип порталов, он должен образовываться всегда таким образом, что-бы всегда получался какой либо результат, и не выдавалась какая либо ошибка 2)геометрия портала основана на принципе существования хорэдемаэ #1 )
1)одноразовый портал - телепортирует без возможности попасть обратно, он телепортирует не на какой-то портал, а на случайное место.
2)зоновый портал - телепеортирует на зоны определенного цвета.
3)глубинные порталы - вид порталов которые могут телепортировать, на определенную дистанцию в глубину.
4)одноуровневые порталы - порталы телепортирующие в определенные дистанции на том же уровне.
5)запертый портал - порталы которые можно открыть только если иметь определенные алгоритм-ключи, который можно получить через определенное действие, или же через ключь, который находится в других ячейках.
6)случайный порталы- те порталы которые могут телепортировать, на случайные порталы, либо же на той же зоны что и они.
7)портал с переменной точкой переноса - ячейки порталы через определенное время меняют точку переноса на другой портал.
8)открытый портал - портал без определенного ключа.
9)портал транспорт - портал идущий через случайные ячейки гиперкуба хорэдема(этим может быть лифт, поезд, машина, вакуумная труба и т.д...)
10)~~портальная пушка -

Зоны:
1)в красные зонах, высокий риск потеряться на большие дистанции, и попасть в ловушку которая приведет к смерти, чем краснее зона тем больше в ней этих возможностей.
2)в золотой зоне все стабильно.
3)в зеленых зонах, все противоположно красным.

Характеристика зон:
1)зоны в гиперкубе хорэдема меняется, они постоянно движутся, из-за энергетического ветра.
2)сильный энергетический шторм может разрушать, так и связи с порталами, так и сами ячейки, в зависимости от того какой шторм.

виды комнат:
(системные комнаты):1)комната портал 2)комната ловушка 3)комната переход
(просто комнаты):1)видео комнаты 2)абстрактные комнаты 3)книга-документные комнаты 4)комнаты искусств 5)игровые комнаты 6)комнаты случайных предметов 7)черные комнаты(стохастические случайные случайности) 8)параллельные миры 10)комбинации музыки 11)все предыдущие 12)комната головоломка

реализуемый уровень (обозначение: белый)
начинается выборка случайных элементов и между ними формируется различная логика взаимодействия почему, приставок, откуда и все виды взаимодействия анализируется возможности реализации в реальности и тогда машинная сеть создает абстракцию цепь разветвления логики берется случайным числом или же её можно задать по стандарту берет выборки с2 можно выбрать количество ответвлений разветвлений по стандарту ограничено определенным числом логики(также задается случайный приоритет влияния и чем он больше, тем больше около значимых значений.

облачный уровень (обозначение: сиреневый)
бесконечно уровней
выбирается случайная реализация логики и случайных элементов абстракций из выборки с2 а также её можно самосоздавать

хаос уровень (обозначение: красный)
имеет уровни количества выбранных элементов при повышение уровней количество выбраных элементов из выборки c2 возрастает
сущность причин и следствие сама логика взаимодействия самосоздается и выстраевается по средствам самой же созданной логике
а также начинается выборка случайных элементов которые тоже самосоздаются и потом анализируется возможности реализации в реальности и тогда машинная сеть создает абстракцию цепь логики берется случайным числом по умолчанию или же её можно задать по стандарту берет выборки с2 можно выбрать количество ответвлений
из комбинаций элементов логики создается новое значение

лабиринт уровень (серый)
создание выборки: берем названия различных явлений, значений слов какого либо языка, термины и определения из как можно больше наук (геометрия и алгебра все разделы, философии, физики и химии, и тд, чем больше наук тем лучше, и комбинируем их создавая новые понятия, комбинируем созданые новые понятия со старыми, получим бесконечно новых понятий


Выборка: #1

1.апория 2.импликация 3.критерий
4.антиномия 5.парадокс 6.коньюнкция
7.биекция 8.иманетность9.полиморфизм
10.инъекция 11.софизм 12.соотношение 13.приоритет
14.Омонимия 15.дихотомия 16.квантор 17.предикаты
18.силлогизм 19.инвариантность 20.Условное суждение
21.идемпотентность 22.традукция 23.Модальность
25.априори 26.Экспликация 27.Алогизм
28.абстракция 29.Амфиболия 30.Паралогизм
31.изотропия 32.изоморфизм 33.Инверсия 34.Логические элементы
35.паритет 36.Эмерджентность 37.Супервентность
38.иллюзия 39.тождество 40.положительное
41.отрицательное 42.амфотерность
43.субъективность сущности 44.призма 45.Топология 46.Энтропия 47.отражение 48.относительность
49.взаимосвязь 50.абсолют(эзотерика, топология)
51.Эпитет 52.Эндоморфизм 53.морфизм
54.стохастичность 55.сведение 56.бифуракции 57.анаморфоз(математика)58.Эгоцентр изм 59.индульгирование
61.все термины из геометрии и её ответвлений
62.МОДАЛЬНОСТЬ 63.Удельность 64.дилемма 65.дистрибуция
66.анизотропия 67.гомеостаза 68.Намерение 69.реляционность
70.Эффект асимметрического доминирования
71.Субстанция 72.релевантность 72.АБСОЛЮТИЗАЦИЯ 73.инвертированность 74.Прецессия 75.эсхатология 76.Инволюция 77.коммутативность 78.гистерезис
Изображения
Тип файла: jpg 5e2f7486d52f77dbc16b128d9915a226.jpg (140.7 Кб, 6 просмотров)
Тип файла: jpg 819a6320780c5082.jpg (120.1 Кб, 0 просмотров)
Тип файла: jpg d237629e442c1e0.jpg (141.4 Кб, 0 просмотров)
Тип файла: jpg High_resolution_wallpaper_background_ID_77701257410.jpg (138.2 Кб, 1 просмотров)
Тип файла: jpg maxresdefault.jpg (131.2 Кб, 4 просмотров)
MakarovDs вне форума Ответить с цитированием
Старый 15.11.2020, 18:05   #8
MakarovDs
Пользователь
 
Регистрация: 10.01.2020
Сообщений: 28
По умолчанию

На картинке примерно то что я хочу получить, ну примерно реализация программы будет такой, если вы изучали школьную алгебру то знаете уравнение с двумя переменными, так вот берем мы значит случайное количество точек в пространстве и даем функцию она будет закрашивать либо цветом, либо картинкой, и делаем условие: если точка A, перпендикулярна точке B, в определенной области то создается закрашенная стена, только нужно сделать так что-бы я мог пройти в ту область, а значит между ними должно быть определенный расстояние не больше размера игрока, пускай размер игрока будет 1.8 метра, значит в высоту не более 1.8, а в ширину 0.40, в принципе можно даже не создавать какие-то фракталы, а сделать просто seed мира, с определенной по уравнению с двумя переменными функцией, которые будет случайным образом в определенной области пространства располагать эти самые графы точек, а что-бы это было красиво надо совмещать переменность природы с линейностью, и стохастичностью, значит сделаем генерацию по фракталам и просто случайную генерацию, и в них самое главное должны быть комнаты в 5 на 5 метров, с неевклидовом пространстве то есть когда в 5 метрах 100 метров, значит добавим в условие что-бы генерировались комнаты, но они должны не заезжать друг за друга.
MakarovDs вне форума Ответить с цитированием
Старый 15.11.2020, 18:39   #9
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 16,600
По умолчанию

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

Используют фракталы в графике для облегчения процессов прорисовки, просчёт долгий, но всё конвертируют в видео, картинку, и уже конечный материал не нужно перепросчитывать.

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

Можно теми же фракталами данные сформировать, а потом корректировать, если какие-то конкретные графические данные будут восстребованы.

Резюмирую тем, что смысл в фракталах только в быстром создании графических данных.
Кризис? нет работы? ну окей, буду чай пить без сахара ) - https://www.youtube.com/channel/UCi3...X3H7D3A/videos, ютуб стерпит и меня )
Alar вне форума Ответить с цитированием
Старый 16.11.2020, 13:18   #10
MakarovDs
Пользователь
 
Регистрация: 10.01.2020
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Вы же понимаете что ява скрипт, каждый раз заного исполняется?
Смысл скрипта не в графике, а во взаимодействии с пользователем браузера.

Используют фракталы в графике для облегчения процессов прорисовки, просчёт долгий, но всё конвертируют в видео, картинку, и уже конечный материал не нужно перепросчитывать.

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

Можно теми же фракталами данные сформировать, а потом корректировать, если какие-то конкретные графические данные будут востребованы.

Резюмирую тем, что смысл в фракталах только в быстром создании графических данных.
Дядя, ты вообще понимаешь весь объем того что я пытаюсь сделать? Это тебе не в майнкрафт играть, я вот только не знаю как придумать некоторые вещи.

Во первых как придумать алгоритм проецирующий объект на точки графов фракталов? Например лицееватость фракталов как на картинке с лицами, думаю тут можно как-то сделать с перцептронами, нужно придумать как научить машинную сеть проецировать изображение или значение слова, или с картинки на 3-х мерное пространство фракталов графов, только как придумать такой алгоритм?

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

Еще забыл написать, там не совсем уравнение с двумя переменными, а выбирается любая функция со случайными аргументами, линейная функция , или парабола, или гипербола, и т.д берется определенное количество 2-x мерных плоскостей, накладываются друг на против друга, расстоянием в 2 метра, в нем берется случайный интервал getRandomInt() по оси x,y,z и берется точка отсчёта от которого береться направление в случайную сторону, то что касается точек отсчёта их будет генерировать много, но на определенном расстояние друг от друга, и при соприкосновение с друг другом они будут сливаться или размываться, образовывая полости перед друг другом, этот выбор тоже случаен, зоны полости будут определенного размера желательно не очень большие и не очень маленькие, там будет глубина количества самоподобия, и таким образом мы получим то, что на первой картинке 1,игра на canvas в 3d, только с комнатами, вообщем надеюсь вы меня поняли.
Изображения
Тип файла: jpg 9bd449cf62.jpg (62.5 Кб, 0 просмотров)
MakarovDs вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с генератором слов Мой повелитель Общие вопросы C/C++ 6 27.02.2016 23:46
Зарубежные микроконтроллеры с встроенным ШИМ-генератором MyLastHit Компьютерное железо 6 22.10.2013 13:33
написание генератора фракталов Жюлиа kyzmich2370 Visual C++ 1 06.11.2012 08:57
Помогите с генератором чисел на Pascal vadmaruschak Помощь студентам 6 13.09.2009 16:06
Игры фракталов на VB Kail Свободное общение 1 29.05.2009 08:30


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS