М.Двач / Наука

Этого треда уже нет.
Это копия, сохраненная 5 января 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

2 Кб, 800x600

21 Кб, 619x558

Кручу-верчу -тред 10 Апр, 10:56 #354872 В конец треда | Веб

Я хз, как тред назвать.

Смотри, хуйня какая.
Есть у нас, скажем, точка А (x1, y1). Кроме того у нас есть еще и точка B (x2, y2). Есть еще и угол alf.
Надобно нам найти точку C (ейные координаты x3, y3), причем такую точку, чтобы угол CAB = alp, а угол ACB = 90°.

Путем нехитрых умозаключений получаем вот такую формулу:
x3=cos(alf)((x2-x1)cos(alf)-(y2-y1)sin(alf))+x1;
y3=cos(alf)((x2-x1)sin(alf)+(y2-y1)cos(alf))+y1;
если разметка похерится - вторая пикча (на символ $ внимание не обращай - специфика PHP). Вполне себе получается найти такую точку - первая пикча.

Это все круто, хорошо и отличненько. А как мне туда еще координату Z добавить? Ну, понятно, что теперь кроме угла alp (который в плоскости поворачивает вектор) добавить еще угол bet (который саму плоскость вращает). Только я че-т туплю немношк, как его туда добавить)))

Ответы>>355241>>360688>>360689

вверх 11 Апр, 10:12 #2 #355176

bump

11 Апр, 10:48 #3 #355184

Это не ты ли, ОП, фракталы в простых числах искал?

Ответы>>355195

32 Кб, 600x600

98 Кб, 600x600

40 Кб, 600x600

11 Апр, 11:35 #4 #355195

>>355184
Ну вот и как ты догадался-то?

Короче, вот эту херню
http://xcontcom.livejournal.com/6010.html
хочу сделать для 3-х измерений, ну и чтобы его прям в браузере можно было вращать, как вот здесь:
http://xcont.com/3d.php

Ответы>>355221>>355445>>355582>>356097>>360689

11 Апр, 13:10 #5 #355221

>>355195
>http://xcont.com/3d.php
Жалко, что только 3Д в перспективе, нет конопочки "изометрического 3Д", это было бы в 100 раз информативней

Ответы>>355239

85 Кб, 801x762

11 Апр, 13:58 #6 #355239

>>355221
Добавил два чекбокса

Ответы>>355291>>360689

528 Кб, 1024x768

11 Апр, 14:10 #7 #355241

>>354872 (OP)
Вокруг линии должна красная сфера получиться: http://xcont.com/sphere.html причем так, чтобы линия через центр сферы проходила.

Не получается. Че-т вообще какой-то бред выходит.

Ответы>>355370

11 Апр, 15:55 #8 #355284

>>355271
О, так ты прям он, видел твой пост на хабре, вдохновил тогда :3 У меня есть такое впечатление, что у твоей штуки есть практическое применение, именно потому что она простая, но о фракталах. В последнее десятилетие появились работы в медицине, о диагностике раковых опухолей по их фрактальной размерности. Анализ картин от сканирующего микроскопа показывает четкое отличие опухолей от здоровой ткани по этому параметру.
Ну, и если абстрагироваться, как мы там получаем эти картины (тут массовые технологии ещё не доползли), то их анализ можно проводить сетью, наученной строить фракталы твоим алгоритмом и сличать с заданной картинкой. Как только сети кажется, что она нашла фрактал размерностью "похожей" на то что на картинке - выдается результат. Тут в чем удобство, элемент построения твоим способом - это же просто бинарная матрица 2х2. А значит рассчеты можно проводить очень быстро и анализировать огромные массивы.
Если б ещё была хорошая технология получения данных, что-то типа УЗИ, но с разрешением на порядки выше, чем сейчас.
Ну это всё просто мысли вслух.

Ответы>>355372

11 Апр, 16:15 #9 #355291

>>355239
Лол, отрыл бумажные очки, порадовался 3Д

20 Кб, 1024x1024

11 Апр, 19:07 #10 #355370

можно закрывать

>>355241
Таки получилось.
Зеленая линия проходит через центр сферы. Синие линии сходятся в центр оси вращения.
Каких-то несчастных 1296 точек, а ресурсы отжирает ппц. Походу WebGL надо курить.

sage 11 Апр, 19:11 #11 #355371

Оп, как стать таким охуенным как ты? Не понимаю как вообще подключать канвас в похпе, через что подключается и как строить тридерисунок. Что прочитать для этого нужно?

Ответы>>355373>>355392

11 Апр, 19:12 #12 #355372

>>355284
Про опухоли я мало что знаю)))

Ответы>>355380

11 Апр, 19:12 #13 #355373

>>355371
Зачем сегаешь?

Ответы>>355374

11 Апр, 19:13 #14 #355374

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

11 Апр, 19:24 #15 #355377

И самый глвный, вопрос, оп. Причем тут пхп, если канвас вроде как через js строится?

Ответы>>355396

11 Апр, 19:36 #16 #355380

>>355372
Ну про фракталы-то про свои что-то знаешь. Ну я вот 2д повозюкал мышкой. Получатся, генерируется какая-то группа фракталов, но она конечная? Ну, если бы у меня был бесконечный монитор и я все вел и вел мышку, куда-то в сторону, я бы увидел что фракталы повтояются, просто более детальные?

Ответы>>355401

23 Кб, 690x640

11 Апр, 19:58 #17 #355392

>>355371
>Не понимаю как вообще подключать канвас в похпе, через что подключается
В похапе канваса нет. В похапе можно чего-то посчитать, в цикле через echo сформировать массив (не html-код, а JS) и в браузере, через JS с ним уже работать. Ну или если Ajax используешь - упаковал массив на сервере с помощью json_encode и дальше его используешь в JS как обычный массив.

>как строить тридерисунок.
На примере вот этой сферы: http://xcont.com/sphere.html
Есть у нас массив точек с разными координатами (x, y, z), которые нам надо за-3d-шить. Просто так нам их 3d-шить скучно - мы их хотим мышкой вращать. Поэтому подключаем addEventListener('mousemove', function), в котором считаем координаты мауса (стандартный код, я его вообще из википедии где-то дернул). Функция возвращает X и Y координаты мышки. Координату X будем использовать для вращения по одной оси (угол альфа), координату Y - для вращения по другой оси (бетта). Берем эти координаты и тупо умножаем на какой-то коэффициент (скорость вращения, грубо говоря). Получаем соответствующие углы. Далее, путем нехитрой тригонометрии, для каждой из точек (x, y, z) применяем формулы вращения из википедии:

yy=y∙cos(alfa)-z∙sin(alfa);
zz=z∙cos(alfa)+y∙sin(alfa);
z=zz;
xx=x∙cos(betta)+z∙sin(betta);
zz=z∙cos(betta)-x∙sin(betta);

y=yy;
x=xx;
z=zz;

Получаем новые координаты для каждой точки. Теперь надо нарисовать 3d-проекцию каждой точки. Как проекция работает? Все, что дальше - меньше, все что ближе - больше. Соответственно, координаты дальних объектов находятся ближе к центру (к оси, через которую якобы твой глаз проходит). Как сделать такое колдунство в канвасе? делим координату x на z и делим координату y на z. Получается, чем больше z (чем дальше от нас точка находится) - тем меньше координаты x и y, относительно центра координат. Ну а поскольку все эти вычисления мы производили относительно центра координатных осей, остается нам к каждой x добавить canvas.width/2 и к каждой y добавить canvas.height/2. После чего используем функции JS (moveTo, lineTo - если точки линиями надо соединять или fillRect - если рисовать одни точки) для рисования внутри канваса.

>Что прочитать для этого нужно?
Википедию

23 Кб, 690x640

11 Апр, 19:58 #17 #355392

>>355371
>Не понимаю как вообще подключать канвас в похпе, через что подключается
В похапе канваса нет. В похапе можно чего-то посчитать, в цикле через echo сформировать массив (не html-код, а JS) и в браузере, через JS с ним уже работать. Ну или если Ajax используешь - упаковал массив на сервере с помощью json_encode и дальше его используешь в JS как обычный массив.

>как строить тридерисунок.
На примере вот этой сферы: http://xcont.com/sphere.html
Есть у нас массив точек с разными координатами (x, y, z), которые нам надо за-3d-шить. Просто так нам их 3d-шить скучно - мы их хотим мышкой вращать. Поэтому подключаем addEventListener('mousemove', function), в котором считаем координаты мауса (стандартный код, я его вообще из википедии где-то дернул). Функция возвращает X и Y координаты мышки. Координату X будем использовать для вращения по одной оси (угол альфа), координату Y - для вращения по другой оси (бетта). Берем эти координаты и тупо умножаем на какой-то коэффициент (скорость вращения, грубо говоря). Получаем соответствующие углы. Далее, путем нехитрой тригонометрии, для каждой из точек (x, y, z) применяем формулы вращения из википедии:

yy=y∙cos(alfa)-z∙sin(alfa);
zz=z∙cos(alfa)+y∙sin(alfa);
z=zz;
xx=x∙cos(betta)+z∙sin(betta);
zz=z∙cos(betta)-x∙sin(betta);

y=yy;
x=xx;
z=zz;

Получаем новые координаты для каждой точки. Теперь надо нарисовать 3d-проекцию каждой точки. Как проекция работает? Все, что дальше - меньше, все что ближе - больше. Соответственно, координаты дальних объектов находятся ближе к центру (к оси, через которую якобы твой глаз проходит). Как сделать такое колдунство в канвасе? делим координату x на z и делим координату y на z. Получается, чем больше z (чем дальше от нас точка находится) - тем меньше координаты x и y, относительно центра координат. Ну а поскольку все эти вычисления мы производили относительно центра координатных осей, остается нам к каждой x добавить canvas.width/2 и к каждой y добавить canvas.height/2. После чего используем функции JS (moveTo, lineTo - если точки линиями надо соединять или fillRect - если рисовать одни точки) для рисования внутри канваса.

>Что прочитать для этого нужно?
Википедию

Показать весь текст
Ответы>>355554>>360689

11 Апр, 20:01 #18 #355396

>>355377
Не при чем вообще. Я его использую, если что-то по быстрому нарисовать надо - он удобнее, чем JS.

11 Апр, 20:13 #19 #355401

>>355380
>Получатся, генерируется какая-то группа фракталов, но она конечная?
Nope.

>>355380
>фракталы повтояются
Новые появляются.

11 Апр, 22:39 #20 #355445

>>355195
Сейчас понял, что смущает. У тебя в 3д алгоритм отражает луч от стенок двух плоскостей, а стенки третьего измерения не замечает.

Ответы>>355448

11 Апр, 22:47 #21 #355448

>>355445
Хм... отражает же

Ответы>>355452>>355456

46 Кб, 766x558

11 Апр, 22:52 #22 #355452

>>355448

Ответы>>355460

11 Апр, 23:02 #23 #355456

>>355448
Ну тогда хз, значит какое-то свойство. Если смотреть без перспективы и перпендикулярно (т.е. всего 6 таких точек обзора), то периоды и линии, понятное дело, сливаются в решетку. Но на одной из осей эта решетка всегда намного реже, "выглядит проще", чем на остальных осях, вне зависимости от чисел

Ответы>>355460

87 Кб, 947x612

11 Апр, 23:17 #24 #355460

>>355452
>>355456
Вот об этом я говорю. Вся сложность фрактала как бы остается в двумерной плоскости, а сама эта плоскость приломляется в 3д. А мне казалось, что должны то получаться кубические структуры

Ответы>>355555

12 Апр, 08:26 #25 #355542

Оп, если не затруднит, сделаешь окошки для контроля поля зрения, ну, чтобы можно было его не терять при перезагрузке с новыми параметрами? Ну что-то вроде делаешь клик, и параметры камеры сохраняются.

Ответы>>355560

12 Апр, 09:27 #26 #355554

>>355392
У вас синусы-косинусы зря столько раз рассчитываются. Их можно посчитать один раз на поворот.

Ответы>>355557

62 Кб, 947x612

12 Апр, 09:41 #27 #355555

>>355460
На пикче две стороны имеют общий делитель (7х3 и 7х2)

20 Кб, 501x723

12 Апр, 09:52 #28 #355557

>>355554
Как? Тригонометрию в школе прогулял. В /pr/ пишут, что я шизик.
>Скажи, насколько ясно ты понимаешь, что ты шизик?

Ответы>>355575>>355589

111 Кб, 1042x969

12 Апр, 10:16 #29 #355560

>>355542
Как-то так. Можно указать параметры камеры по умолчанию

12 Апр, 12:08 #30 #355575

>>355557
Ну это, ты вообще с синусами-косинусами делаешь, потому что планируешь в расширениях модели менять угол отражения? Потому что, если всегда будет 90 градусов, ты мог просто сделать трехмерный бинарный массив [x,y,z], задать бинарную матрицу, которая диагонально ставит true в точках этого массива, задать правила перемещения этой структуры - которые есть просто диагональное смещение по массиву и задать правило поворота , если матрица достигла границы массива, там просто симметричный поворот "красящих элементов матрицы" (всего два варианта - диагоналей то в матрице две) + изменения правила перемещения матрицы (всего 6 вариантов, для каждой границы). Ну и всё, как алгоритм завершился, рендеришь массив - каждая точка это пиксель. Будет намного быстрее всё.
Собственно говоря, если накодишь структуру матрицы довольно абстрактно и потом ещё подумаешь немного, то ты можешь матрицу делать не квадратную, это и будет изменением угла падения, если оно тебе понадобиться.

Ответы>>355591

12 Апр, 12:30 #31 #355582

>>355195
А, Серега, ты, ну привет.

12 Апр, 13:11 #32 #355589

>>355557
Похер на тригонометрию. Ты тупо считаешь 100500 раз то что можно посчитать один раз. Например генеришь сферу каждый такт. Нахуя? Сгенерь ее один раз в массив точек и потом вращай ее готовую как хочешь. Потом ты считаешь поворот для каждой точки, когда можно посчитать один раз поворот сразу для всех точек. Еще можно упростить отрисовку точки не прямоугольником, а сразу пикселем.

Ответы>>355590>>355592

12 Апр, 13:18 #33 #355590

>>355589
Ну ладно тебе, перфекционист. Это все детали, важные только для прикладного применения. Не думаю, что у кого-то калькулятор настолько, что тормозит (хотя сфера торомозит заметно, лол). Человек показал красивую структуру. Я второй день любуюсь, уже столько всяких применений придумал, и распознавание образов, и конструирование микро-фильтров, клапанов, логических наноэлементов, работающих на статическом электричестве. Я тебе говорю, эта штука ляжет в основу многих вещей, но технологии ещё не дошли. Можешь скринить.

Ответы>>355595

12 Апр, 13:21 #34 #355591

>>355575
>менять угол

12 Апр, 13:24 #35 #355592

>>355589
Ок. Сферу отдельно можно посчитать, упаковать в массив и уже туда в функцию передать, где ее вращать мышкой.

>Потом ты считаешь поворот для каждой точки, когда можно посчитать один раз поворот сразу для всех точек.
kak?

>сразу пикселем.
Канвас не может же в пиксели.

Ответы>>355599>>355684

12 Апр, 13:26 #36 #355595

>>355590
А вот если тот паттерн на стеклышко маленькими штришками нанести, аки решетка дифракционная и лазером туда потом светонуть?

Ответы>>355596

12 Апр, 13:29 #37 #355596

>>355595
Не ябу, я по медицине и биологии только могу содержательно беседовать

Ответы>>355601

12 Апр, 13:43 #38 #355599

>>355592
>Сферу отдельно можно посчитать, упаковать в массив и уже туда в функцию передать, где ее вращать мышкой.
http://xcont.com/sphere_test.html
Не заметил разницы.

Ответы>>355709

64 Кб, 1027x856

12 Апр, 13:51 #39 #355601

>>355596
Напомнил. В друзяфках в ЖЖшечке есть один фрактальный медик

Ответы>>355636

12 Апр, 15:21 #40 #355636

>>355601
Лол, ну нет. А за наводку спасибо, отряд космодесанта уже вылетел покарать еретика.

Ответы>>355637

12 Апр, 15:25 #41 #355637

>>355636
/me троллил этого мудака ещё до того, как это стало мейнстримом.

12 Апр, 17:53 #42 #355684

>>355592
>kak?
Просто считай все косинусы-синусы отдельно от цикла перебора точек. Они долгие эти синусы их частый расчет нужно избегать.
>Канвас не может же в пиксели.
Да, но можно применить хитрый костыль.

Вот небольшой пример как можно быстро вращать 100500 точек на холсте.
https://jsfiddle.net/zxv7gL8b/

Если быстроты все же не хватает то нужно юзать WebGl.

12 Апр, 18:37 #43 #355709

>>355599
Наверное вывод точки в виде прямоугольника значительно более тормозной чем расчет синуса.

Ответы>>355763

12 Апр, 22:22 #44 #355763

>>355709
Таки прямоугольники больше всего ресурсов отъедают.

267 Кб, 1920x1080

13 Апр, 20:47 #45 #356026

Гляди-ка че, в каждой проекции трехмерной структруры сидит фрактал

Ответы>>356091>>356151

13 Апр, 20:55 #46 #356029

Ближе к трехзначным числам начинает тормозить неприлично

181 Кб, 1533x1046

13 Апр, 23:53 #47 #356077

В перспективе тоже сохраняются

Ответы>>356095>>356151

14 Апр, 01:31 #48 #356091

>>356026
Правый верхний - какие числа?

Ответы>>356111

529 Кб, 1024x1024

14 Апр, 02:00 #49 #356095

>>356077
Кубик с таким паттерном можно гораздо проще сделать.
Заполняем пространство точками с одинаковыми интервалами между ними (по всем трем осям). Применяем преобразования 3D-перспективы:

xx = x ∙ focus/z
yy = y ∙ focus/z

http://xcont.com/cube.html

Ответы>>356151

228 Кб, 1024x1024

177 Кб, 1024x1024

78 Кб, 1024x1024

62 Кб, 1024x1024

14 Апр, 03:07 #50 #356097

>>355195
3 dimensions

Ответы>>356112

14 Апр, 08:53 #51 #356111

>>356091
Все 6 -один и тот де " квадрат". уже не помню, что-то воде 81 82 83. А дальше - крутишь и ищешь

14 Апр, 09:01 #52 #356112

>>356097
Круто

14 Апр, 14:35 #53 #356151

>>356095
>>356077
Cмотри, как интересно получается. Очевидная одинаковость этих двух структур происходит из одного правила, правила построения перспективы. А вот эти фракталы >>356026 произошли от того правила, которым браузер рендерит наложившиеся друг на друга точки структуры. Вот эти http://xcont.com/ фракталы получается простым правилом задания границы. Не может ли быть так, что в общем случае, задание любого правила - это и есть задать фрактал?

Ответы>>356154>>356158

14 Апр, 14:57 #54 #356154

>>356151
Множества - это фракталы, потому что правило построения теории множеств - это задание его элементов, а элемент любого множества - это элемент множества, лол, самоподобие же.

Ответы>>356158>>356160

14 Апр, 15:26 #55 #356158

>>356154
>>356151
Вы с ног на голову-то не ставьте. Фрактал - это частный случай множества с заданной на нем структурой, но не наоборот.

Ответы>>356159

14 Апр, 15:29 #56 #356159

>>356158
Ну ладно тебе, ну на секундочку поставили, все ж мы люди. Просто, ну если ставится, то это не проблема никакая, а просто провод задуматься. А структуры можно задавать, вообще не вдаваясь в теорию множеств, с этим хоть спорить не будешь?

1 Кб, 16x512

2 Кб, 142x256

14 Апр, 15:30 #57 #356160

>>356154
>Возьмем, для примера, самую простую систему счисления - двоичную. Запишем цифры от 0 до 255 в столбик и раскрасим 1 черным цветом, а 0 - белым. Получим вот такой вот паттерн, который вполне обладает свойствами самоподобия

Ответы>>356161

14 Апр, 15:36 #58 #356161

>>356160
>цифры
числа
fix

1392 Кб, 600x600

1908 Кб, 600x600

15 Апр, 19:49 #59 #356412

Гифки

Ответы>>356447>>357252

15 Апр, 22:12 #60 #356447

>>356412
Да, ты крут, давно хотелось увидеть в повороте

283 Кб, 1000x1000

19 Апр, 11:40 #61 #357113

Где-то что-то не то ввёл. Дракон Хартера-Хейтуэя вот такой вот получился

Ответы>>357117>>357122

19 Апр, 12:16 #62 #357117

>>357113
Забавно. Углы чередуются на по порядку (45, -45, 45, -45), а как в последовательности Морса-Туэ (45, -45, -45, 45, -45, 45, 45, -45)

Ответы>>357118

51 Кб, 560x502

51 Кб, 500x500

19 Апр, 12:22 #63 #357118

>>357117
Кстати, тоже норм тема.
30°. На первой пикче - оригинал, на второй - Морса-Туэ.

342 Кб, 1000x1000

19 Апр, 12:30 #64 #357122

>>357113
Похуй, так и оставлю. Всё выравнивается, если вместо двух углов указать 4 (45, -45, -45, 45)

Ответы>>357128

1203 Кб, 600x600

19 Апр, 12:49 #65 #357128

>>357122
Гифка

Ответы>>357136>>357145

19 Апр, 13:36 #66 #357136

>>357128
Ого! Объясни, что хоть происходит. Ну, там треугольник - это начало посторения, ну и дракон. А в кадрах между ними вообще происходит ?

Ответы>>357145

9 Кб, 700x419

15 Кб, 700x695

19 Апр, 14:18 #67 #357145

>>357136
Ну смотри, как дракон Хартера-Хейтуэя строится.
Есть две точки A и C. Третья точка B - это пряма AC повернутая на угол 45° (альфа) и умноженная на косинус этого угла.
Получаем новые точки AB и BC. Для них проделываем ту же операцию (но чередуем углы 45° и -45°). (первая пикча).
Для новых точек проделываем ту же операцию, в цикле, пока не надоест.

Это всё на плоскости. Как сюда третье измерение добавить? После поворота прямой AC на угол (альфа) получаем новую точку B и далее ее (точку B) еще раз поворачиваем на угол (бетта), но уже вокруг самой прямой AC (вторая пикча)

На гифке выше >>357128 угол альфа = 45° (и -45°). Угол бетта меняется от 180° до -180° с шагом 10°

Только я че-т не пойму, откуда там треугольник берется. Где-то направление вращения вокруг АС (по часовой/против) неправильно считается.

Ответы>>357150

176 Кб, 1000x1000

502 Кб, 1000x1000

125 Кб, 1000x1000

283 Кб, 1000x1000

19 Апр, 14:32 #68 #357150

>>357145
>неправильно считается
Признаться честно, лень искать. Назовем это не багом, а фичей)))
В том виде, как сейчас - больше вариантов фракталов получается.

Ответы>>357151>>357152

105 Кб, 1000x1000

311 Кб, 1000x1000

125 Кб, 1000x1000

374 Кб, 1000x1000

19 Апр, 14:32 #69 #357151

>>357150

506 Кб, 1000x1000

649 Кб, 1000x1000

335 Кб, 1000x1000

516 Кб, 1000x1000

19 Апр, 14:32 #70 #357152

>>357150

Ответы>>357153

283 Кб, 1000x1000

477 Кб, 1000x1000

389 Кб, 1000x1000

342 Кб, 1000x1000

19 Апр, 14:33 #71 #357153

>>357152

257 Кб, 1238x985

19 Апр, 16:01 #72 #357164

В ЖЖ-шечке :3 дофига картинок выложил: http://xcontcom.livejournal.com/8023.html

Ответы>>357223

19 Апр, 18:45 #73 #357223

>>357164
Они техмерные? Их можно повертеть онлайн на твоем сайте?

Ответы>>357252

64 Кб, 825x883

19 Апр, 20:23 #74 #357252

>>357223
>Они техмерные?
Те, что выше - двухмерные.

>Их можно повертеть онлайн на твоем сайте?
Вот сюда закинул:
http://xcont.com/geom3d/
Углы тупо через слеш (альфа/бета/альфа/бета/...):
http://xcont.com/geom3d/45/90/45/90/45/90/45/-90/ (пикча)

Дракон Хартера-Хейтуея, например:
http://xcont.com/geom3d/45/180/-45/180/-45/180/45/180/

Или вот этот >>356412 с первой гифки:
http://xcont.com/geom3d/45/90/

Если дохуя тормозит, вот тут:
http://xcont.com/geom3d_low/
"лайт"-версия. Можно на ней углы подбирать.

Угол альфа в пределах (-90°, 90°). Угол бета - от 0 до 360 (ну или от -180 до 180)
Еще пример: http://xcont.com/geom3d/45/210/

Ответы>>357257>>357268>>357279

32 Кб, 821x878

19 Апр, 20:37 #75 #357257

>>357252
>Совпадение? Не думаю!

Ответы>>357258

19 Апр, 20:40 #76 #357258

>>357257
Количество углов можно любое вбивать:
http://xcont.com/geom3d/30/90/-60/90/-30/90/60/90/-30/90/60/90/30/90/-60/90/45/180/45/180/
Самые "ровные" фракталы получаются с углами:
30°, 45°, 60°, -30°, -45°, -60° (альфа)

Ответы>>357261

14 Кб, 700x700

19 Апр, 20:49 #77 #357261

>>357258
Наглядно. С любым углом альфа, точка C лежит на окружности (диаметр которой - AB).
Если угол альфа = 90° - точка C совпадает с точкой A
Если угол альфа = 0° - точка C совпадает с точкой B

167 Кб, 500x500

19 Апр, 21:15 #78 #357266

Вот, тоже яркий фрактал получается (плоский):
45,180
45,180
45,0
http://xcont.com/geom3d/45/180/45/180/45/0/

19 Апр, 21:27 #79 #357268

>>357252
Последняя очень красивая.

19 Апр, 21:41 #80 #357269

Надо туда тоже эволюции-мутации прикручивать. Вручную те углы подбирать - дело неблагодарное.

19 Апр, 23:08 #81 #357279

>>357252
>дохуя тормозит
Да, чуть тормозит.

Если тормоза критичны, то вместо вывода линиями воспользуйся вот такой оптимизацией:
https://jsfiddle.net/jkage0db/embedded/result/

Ответы>>357339

20 Апр, 11:20 #82 #357339

>>357279
Разницы в скорости не уловил. Но таки да, пиксели четкие.

Ответы>>357614

7 Кб, 500x500

10 Кб, 500x500

21 Апр, 09:57 #83 #357524

http://xcont.com/geom3d/45/0/45/180/45/180/45/180/45/0/
http://xcont.com/geom3d/45/180/45/180/45/0/45/180/45/180/

Ответы>>357528>>357557

21 Апр, 10:04 #84 #357528

>>357524
Любой известный фрактал можно получить, если знать углы?

Ответы>>357532

10 Кб, 600x447

5 Кб, 600x250

21 Апр, 10:52 #85 #357532

>>357528
Не, смотри прикол. Тут, на каждой итерации, к каждым двум точкам только одна добавляется (верхняя часть пикчи - одна точка, нижняя - две).
В той же "Снежинке Коха" (вторая пикча) таких точек три.

582 Кб, 1856x1856

21 Апр, 10:55 #86 #357534

6 углов
[45, 0], [45, 0], [45, 0], [45, 0], [45, 0], [45, 0]
[45, 0], [45, 0], [45, 0], [45, 0], [45, 0], [45, 180]
[45, 0], [45, 0], [45, 0], [45, 0], [45, 180], [45, 0]
...
[45, 180], [45, 180], [45, 180], [45, 180], [45, 180], [45, 180]

Ответы>>357535>>357536

623 Кб, 1856x1856

21 Апр, 11:08 #87 #357535

>>357534
30°

Ответы>>357558

21 Апр, 11:33 #88 #357536

>>357534
Вот нижний правый - похож на дерево Пифагора, но это не он. Но очень похож.

Ответы>>357537

88 Кб, 770x268

21 Апр, 11:38 #89 #357537

>>357536

Ответы>>357539

21 Апр, 11:49 #90 #357539

>>357537
"Кривая Леви" и "Дерево Пифагора" - один и тот же фрактал

Ответы>>357545

21 Апр, 12:06 #91 #357545

>>357539
Ну так ОП строит кривую Леви под разными углами, или что-то другое?

Ответы>>357547

21 Апр, 12:09 #92 #357547

>>357545
Или ОП открыл общий способ строить любые фракталы? Или это просто так проявляется самоподобие, то общее, что есть у любого фрактала, вне зависимости от способа построения?

Ответы>>357557

121 Кб, 500x500

21 Апр, 13:11 #93 #357557

>>357547
Чего сразу "открыл"? Способ тот известен 50 лет (Дракон Хартера-Хейтуэя в 1967 нарисовали). Я тут прост углы пытаюсь самые красивые подобрать. Вот такие фракталы >>357524 , например, впервые вижу и они охуенные - их раньше никто не рисовал.

645 Кб, 1856x1856

21 Апр, 13:29 #94 #357558

>>357535
30, 30, 30, 60, 60, 60

21 Апр, 18:57 #95 #357614

>>357339
Тормозит сам вывод context.putImageData(canvasData, 0, 0);
Короче при больших размерах холста эта гореоптимизация не поможет.

Если нужны просто четкие пиксели, то рисуй однопиксельные прямоугольники четко на пикселе.

Ответы>>357624

100 Кб, 948x2018

21 Апр, 20:05 #96 #357624

>>357614
Та не, норм оптимизация. Удобно цвета можно указывать.

Ты JS хорошо шаришь? Не могу сообразить, как мне канвас с аяксом подружить. При нажатии на кнопочку сервак должен отдавать новую порцию углов, которые надо передать туда в канвас. На пикче исходник (или вот тут http://pastebin.com/GJnc49np )

На ум приходит только сделать скрытое текстовое поле - туда ответ аякса записывать и каждый раз в канвасе оттуда углы дергать.

Ответы>>357639

21 Апр, 21:05 #97 #357639

>>357624
>Ты JS хорошо шаришь?
Я его практически не знаю. Так только немного базовый уровень. Спроси лучше в программаче или вебаче.

Ответы>>357642>>357648

214 Кб, 1119x940

21 Апр, 21:36 #98 #357642

>>357639
>в программаче
Лучше уже в /b/ тогда.

21 Апр, 22:08 #99 #357648

>>357639
Все. Разобрался.
Там надо было var angls вынести перед window.onload=function() и в Ajax-ответе убрать var перед angls
Трудно сразу на двух языках программировать. В PHP глобальные переменные работают иначе.

Ответы>>357651

sage 21 Апр, 22:49 #100 #357651

>>357648
>Трудно сразу на двух языках программировать
Ох...

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

Ответы>>357695

22 Апр, 02:05 #101 #357695

>>357651
ага

197 Кб, 2800x928

22 Апр, 13:16 #102 #357739

Похоже на разглядывание атласа фрактальных форм

Ответы>>357951

10 Кб, 614x722

22 Апр, 17:24 #103 #357779

> http://xcont.com/geom3d/
Добавил кнопочку - рандомные углы аяксом делает.

Ответы>>361538

23 Апр, 15:24 #104 #357951

>>357739
30-градусные на зародышей похожи :)

Ответы>>357961

23 Апр, 18:15 #105 #357961

>>357951
Это неудивительно, если учесть, что человек это фрактальная демосцена.

Ответы>>357968

23 Апр, 19:16 #106 #357968

>>357961
Можно ли подобрать такие углы, чтобы получился человечек?

Ответы>>360472

04 Май, 20:25 #107 #360472

>>357968
Можно, значения углов расшифруй из ДНК

Ответы>>360523

12 Кб, 700x700

412 Кб, 500x500

05 Май, 00:10 #108 #360523

>>360472
Мне кажется, все не так просто.
Кстати, смотри прикол. Точка 1 - это поворот точки B вокруг точки A на угол альфа. Следующая точка 2 - поворот точки 1 на этот же угол (!!!). Точка 3, 4 и т.д. - тот же угол.
Если, после каждого поворота, увеличивать (уменьшать) этот угол на определенное число?
На гифке уменьшаю этот угол на 0.0001° (!) в диапазоне от 0° до 0.009°

05 Май, 21:56 #109 #360688

>>354872 (OP)
Эт ты как, в 3д, рисовать на пхп собрался?
Через GD image stream? Ничё не врубаю...

Ответы>>360706

05 Май, 22:02 #110 #360689

>>355392
>>355239
>>355195

>>354872 (OP), там жава в хеаде, а не пэхапэ.

05 Май, 22:54 #111 #360706

>>360688
Да хоть через imagecreatetruecolor - какая хер разница? Проекция каждой точки высчитывается по формулам.
Но рисую я через JS canvas - там мышку можно приделать, в отличии от php

10 Май, 12:40 #112 #361538

>>357779
Мужииик, если тебе не трудно, а ты можешь вращение повесить на клавиши WSAD, а на мышку - изменение углов? Вот это будет вообще полное погружение.

Ответы>>361539>>361548

10 Май, 12:41 #113 #361539

>>361538
если еще анаглиф привяжешь, а вообще кончу наверное

Ответы>>361691

10 Май, 14:36 #114 #361548

>>361538
Удобнее вращать таки именно мышкой.

>изменение углов
Углов-то много. Какие именно изменять?

Ответы>>361560

133 Кб, 1754x1240

10 Май, 15:43 #115 #361560

>>361548
>Какие именно изменять?
Ну да, задачка не простая, прямо скажем, дизайнерская. Пример интерфейса на пикрелейтед

Ответы>>361691

10 Май, 18:26 #116 #361610

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

Ответы>>361691

9 Кб, 600x600

11 Кб, 600x600

10 Май, 23:22 #117 #361691

>>361560
Углы парами идут. Таки лучше делать, чтобы один из углов менялся кнопками A, D, а второй - W, S. Но над этим завтра буду соображать.

>>361539
>анаглиф
Цвета не могу корректно подобрать для черного фона: http://xcont.com/geom3d_anagl/60/255/70/15/35/105/75/195/

>>361610
>Добавь автоматическую перерисовку
Done

Ответы>>361705

11 Май, 00:27 #118 #361705

>>361691
>Цвета не могу корректно подобрать для черного фона
Есть немного, но в целом, быстро перестаешь шум замечать. Все равно фигура сразу внимание поглощает. Очень красиво, прям ух.

Ответы>>361708>>361711

11 Май, 00:30 #119 #361708

>>361705
Если кому сильно мешает, вот можно контрастность монитора убавить - помогает; с цветностью поиграться ещё можно

11 Май, 00:45 #120 #361711

>>361705
Фон заменил на белый

11 Май, 01:04 #121 #361715

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

Ответы>>361716

11 Май, 01:19 #122 #361716

>>361715
Пример?

Ответы>>361718

11 Май, 01:25 #123 #361718

>>361716
http://xcont.com/geom3d/80/300/85/180/30/255/55/300/35/240/50/330/55/45/35/300

http://xcont.com/geom3d/60/270/45/105/30/315/10/180/25/120/20/255/20/165/20/135

типа таких.

Ответы>>361720>>361721

11 Май, 01:42 #124 #361720

>>361718
Углов слишком дофига и все разные. Отсюда больше хаоса.
И таки да, если увеличить количество точек подобие будет легче заметить.

11 Май, 01:55 #125 #361721

>>361718
Вот тут:
http://xcont.com/geom3d_21/60/270/45/105/30/315/10/180/25/120/20/255/20/165/20/135
вместо 32770 точек, 2097154. Браузер может зависнуть.

Ответы>>361807

11 Май, 12:00 #126 #361807

>>361721
По ссылке - не сильно тормозит, а вот уже на следующих фракталах - тормозит нереально, даже если довольно простые попадаются. Где-то что-то не оптимизировано

Ответы>>361832

11 Май, 14:18 #127 #361832

>>361807
Походу, после отправки запроса на сервер, старый массив не успевает выгрузится из памяти до того, как сформируется новый. Засоряется кеш. Браузеры не предназначены для подобных вычислений.
Ну так, на вскидку, массив на 2^21 точек - 2097154 точек. Каждая точка записана 3-мя координатами - 6291456 значений. Каждое значение весит в JS 8 байт - 50.331648 мегабайт. Плюс еще 33.554432 мегабайт после рендеринга. 83.886080 мегабайта. Канвас тоже массивом отрисовывается (canvasData.data) - еще 67 метров... А вообще, у меня Firefox 500 мегабайт куда-то сливает. Скриптовые языки программирования - это черный ящик. Одному бозе известно, как реализованы доступ в память и сборка мусора в том или ином браузере.

22 Май, 12:01 #128 #364441

https://www.youtube.com/watch?v=qhbuKbxJsk8
Фракталы, фракталы повсюду

Ответы>>364690

23 Май, 13:18 #129 #364690

>>364441
Забавно
http://xcont.com/table.html

Ответы>>364715

23 Май, 15:57 #130 #364715

>>364690
Да не то слово. Ты строил как в ролике, но убирал отрезки через один? А фрактал получается тот же. Отрежь от фрактала половину - получится тот же фрактал.

Ответы>>364730>>364782

23 Май, 17:00 #131 #364730

>>364715
Даже не так. Как-то сложно эту мысль софрмулировать. Ну в общем это наблюдение. Как мы получаем фракталы? мы берем какой-то объект и задаем на нем какое-то правило построения, получаем другой объект - фрактал. Два разных правила - два разных фрактала. Но если мы задаем композицию двух таких правил, то получаемый третий фрактал, который содержит оба предыдущих фрактала в целости. И хоть миллион их скомбинируй, они друг друга "не испортят", всегда можно распознать любой отдельный фрактал, учавствовавший в построении исходного. Так мне кажется.

Ответы>>364739>>365280

23 Май, 18:02 #132 #364739

>>364730
Или, блджад, не берем мы никакой объект изначально, а только правило построения примненное на себя - дает фрактал. Сука, с ним очень сложно, но фрактал - он о чем-то таком глубоком, об источнике, основаниях всего.

23 Май, 21:14 #133 #364782

>>364715
Почему но? Делал как в ролике. Разделил круг на n точек (количество - xMouse). Каждую точку соединил с точкой*k (k - yMouse/10). А где там фрактал?

25 Май, 20:34 #134 #365167

https://www.youtube.com/watch?v=QAja2jp1VjE

26 Май, 06:24 #135 #365280

>>364730
У меня на этот счет немношк другое наблюдение)

29 Июн, 01:49 #136 #372083

Бампну разок, чтобы не утонуло

24 Июл, 08:43 #137 #377564

Самое время бампнуть

16 Авг, 01:21 #138 #381791

Бумп

19 Сен, 06:37 #139 #388261

Бумп

Ответы>>388262

19 Сен, 07:14 #140 #388262

>>388261
>бамп в тематике

Ответы>>389616

27 Сен, 19:09 #141 #389616

>>388262
Раз в месяц, чтобы не утонуло.

05 Ноя, 20:09 #142 #395447

Не утонуло? Бамп!

06 Дек, 04:37 #143 #398223

Вверх же

06 Дек, 12:06 #144 #398241

Кватернионы пробовал?

Ответы>>398273

06 Дек, 18:22 #145 #398273

>>398241
Зачем, если на матрице поворота неплохо работает?
http://xcont.com/geom3d/45/90/

Ответы>>400644

02 Янв, 01:25 #146 #400644

>>398273
Самое время бампнуть!

Тред утонул или удален.
Это копия, сохраненная 5 января 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /sci/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion