Четверг, 18 Апреля 2024, 10:39

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 6 из 7
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • »
Форум игроделов » Программирование » Общие обсуждения программистов » Научные причуды
Научные причуды
LumineSky@FiДата: Воскресенье, 02 Января 2011, 22:35 | Сообщение # 101
почетный гость
Сейчас нет на сайте
Quote (ezhickovich)
umineSky@Fi, но ведь его можно поделить сколько угодно раз...

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


Гильдия людей поклоняющихся "ТРАНСФОРМАТОРАМ".
Гильдия людей которые видели как "Крабы" едят "Кошек".
СтранникДата: Воскресенье, 02 Января 2011, 22:36 | Сообщение # 102
почти ветеран
Сейчас нет на сайте
Quote (ezhickovich)
LumineSky@Fi, но ведь его можно поделить сколько угодно раз...

Но делим-то мы одно и то же. Причём абстрактно


FreeBitcoin - лучший из биткоин-кранов
ezhickovichДата: Воскресенье, 02 Января 2011, 22:37 | Сообщение # 103
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Что-то я тупанул...


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
СтранникДата: Воскресенье, 02 Января 2011, 22:37 | Сообщение # 104
почти ветеран
Сейчас нет на сайте
Quote (LumineSky@Fi)
давай так, подели мне 2D или 3D сколько угодно раз.

Всё равно получатся 2D или 3D,эм,куски.


FreeBitcoin - лучший из биткоин-кранов
K0DAK47Дата: Воскресенье, 02 Января 2011, 22:38 | Сообщение # 105
Cat Development
Сейчас нет на сайте
Quote (LumineSky@Fi)
да да да, я таким пользуюся

Это как же? Устройства купил, шито ли?

Quote (ezhickovich)
Следовательно большинство современных игр (не только 3D, но и 2D) по сути являются n-мерными, ведь мы не знаем сколько локальных матриц и насколько плоскостей они делят этот трёхмерный мир, ведь даже при простом повороте мы получаем новые плоскости...

Мы получаем те же плоскости. Это перспектива нашего зрения вдуряет нам волшебные изображения.


.xm
Шаблон для разработчиков
СтранникДата: Воскресенье, 02 Января 2011, 22:38 | Сообщение # 106
почти ветеран
Сейчас нет на сайте
В общем,
Quote (LumineSky@Fi)
Вселенная имеет три пространственных измерения и одно временное измерение.

На том и порешим ?


FreeBitcoin - лучший из биткоин-кранов
ezhickovichДата: Воскресенье, 02 Января 2011, 22:41 | Сообщение # 107
[Великий и могучий хозяинъ]
Сейчас нет на сайте
давайте... (да и к тому же так сказано в учебнике по физике)


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
K0DAK47Дата: Воскресенье, 02 Января 2011, 22:41 | Сообщение # 108
Cat Development
Сейчас нет на сайте
Странник, да, но не закрывать же тему. Давайте что - нибудь другое обсуждать.

.xm
Шаблон для разработчиков
Serg1971Дата: Воскресенье, 02 Января 2011, 22:43 | Сообщение # 109
Весёлый программист
Сейчас нет на сайте
Ладно, давайте уже переключимся на то, что можно запрограммировать и пощупать руками!!! smile Вот, я сделал Множество Мандельброта на комплексной плоскости...

А вот доки примерные... Сейчас свою программу на бейсике выложу! smile
Code
1.1. Множества Жюлиа   
Будем рассматривать последовательности комплексных чисел {Zn}. Возьмем произвольное комплексное число c. Теперь для любого комплексного числа k рассмотрим последовательность {Zn(k)}:   

      Z0 = k,   
      Zi+1= Zi2 + c
Зададим себе вопрос: сходится ли Zn к нулю или стремится к бесконечности при n стремящемся к бесконечности? Пусть J – множество всех комплексных чисел {k}, таких что {Zn(k)}стремится к 0, при n стремящемся к бесконечности.  Если теперь мы возьмем все такие k и отобразим их на комплексной плоскости, то получим множество Жюлиа. Меняя c, мы получим бесконечный набор фантастических само подобных образов – множеств Жюлиа.   

1.2. Множество Мандельброта   

Рассмотрим набор множеств Жюлиа и зададимся вопросом: связно ли данное конкретное множество Жюлиа? Пусть M – множество всех множеств Жюлиа, которые связны. Это множество и называется множеством Мандельброта.   

Теперь возьмем любое множество Жюлиа J, и комплексное число c, которое его породило. Если J содержится в M, то изобразим точку черным на комплексной плоскости, в противном случае белым. Это и дает нам того “своеобразного снеговика“, которого вы уже наверное видели миллион раз. Его - то мы и будем генерировать.   

К счастью, есть более легкий путь изображения множества Мандельброта, чем рисование каждого множества Жюлия и выяснения, связно ли оно. Наш метод будет очень близок к построению множеств Жюлиа. Опять рассмотрим итерационную последовательность для любого k, и выясним, сходится ли она к нулю.   

Zi+1= Zi2 + c
Заметим, что c здесь уже не константа.Для любой точки комплексной плоскости мы c присваиваем значение kи выполняем итерации. Этот метод, как ни странно, дает нам то же изображение множества Мандельброта. Итак, алгоритм:   

For each point k on the complex plane do:   
      let x=0.   
      repeat infinite times:   
          x = x2 + k.   
      end repeat   
      if x goes to infinity,   
          k is not in the set. Color is white.   
      else   
          k is in the set. Color is black.   

Понятно, что бесконечных циклов быть не должно. Поэтому возьмем некоторое большое число I и проитерируем I раз. Чем большее I мы взяли, тем, разумеется, точнее ответ мы получим. Из практики, число 4000 дает довольно хороший результат. Да, но 4000 раз “крутить“ цикл для каждого пиксела изображения, это многовато. К счастью, мы можем воспользоваться результатами многолетней работы математиков в этой области. Оказывается, если в любой конкретный момент вычислений, для k расстояние от zi(k) до начала координат больше 2, то мы можем принять, что данная {Zn(k)} уйдет в бесконечность. (При сравнении: расстояние < 2, поэтому его квадрат меньше 4 и корень извлекать не нужно.) Итак, теперь наш алгоритм выглядит так:   

For each point k in the complex plane do:   
      let x=0.   
      repeat 4000 times   
          let x=x2+k   
          if x2 > 4 then   
              Color it white   
              Break   
      end repeat   
      if we reached 4000 then   
          Color is black.   

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

1.3. Цветное изображение   

Если точка принадлежит множеству Мандельброта, то с ней все ясно – рисуем ее черным. Но как быть с точками, не принадлежащими множеству? Общепринятый способ выбора цвета для них – это выбирать цвет в соответствии с тем, как быстро {Zn(k)} стремится к бесконечности (на какой итерации мы ее исключаем из рассмотрения). Например, точка, для которой расстояние до начала координат больше 2 уже на третьей итерации, должна быть почти белой, а та точка, которая “продержалась“ до 3995 итерации – почти черной. Перепишем алгоритм для изображения в градациях серого:   

For each point k in the complex plane do:   
      let x:=0.   
      for i:=0 to 4000   
          let x=x2+k   
          if ( |x|2> 4) then   
              Color point k color i   
              Break;   
          end if   
      end for   
      if (i=4000)   
          Color of point k is black.   
      end if   

Конечно, просто рисовать точку цветом i мы не можем. Считая, что у нас есть только 256 градаций серого, а i меняется до 4000. Нам надо как-то отображать i на доступный нам диапазон цветов. Эту проблему мы оставляем вам. После того, как мы получили приличное изображение в градациях серого, очень легко чуть изменить алгоритм для получения цветного изображения. Например, в изображении в градациях серого, если точка вышла из области на n-ой итерации, вы можете рисовать ее цветом (n, n, n). Можете попробовать и что-нибудь поинтереснее типа (n, 255 – n, 50 mod n * 3). Оставляем простор для вашей фантазии. И последнее: обычно, все множество Мандельброта расположено от -2 до 0.5 по действительной оси и от –1.25 до 1.25 по мнимой оси. Ваша программа не должна тестировать точки далеко за пределами этой области. Теперь можно посмотреть пример. Надеемся, что вам удастся сделать что-нибудь поинтереснее.   

Вот программа:

Code
REM Project: Mandelbrot
REM Created: 13.08.2010 20:19:16
REM
REM ***** Main Source File *****
REM
cls
yy=0
for y#=-1 to 1 step 0.005
     yy=yy+1
     xx=0
       for x#=-2 to 1 step 0.005
           xx=xx+1
           cx#=x#
           cy#=y#
           BX#=x#
           BY#=y#
           ix#=0
           iy#=0
           n=0
           flo#=0
        while (flo# < 2) and (n < 64)
          flo#=sqrt( ix# * ix# + iy# * iy# )
          ix#=BX# * BX# - BY# * BY# + cx#
          iy#=2*BX#*BY#+cy#
          n=n+1
          BX#=ix#
          BY#=iy#
          col=n*n
        endwhile

        dot xx,yy,col
      next x
next y
suspend for key




Сообщение отредактировал Serg1971 - Воскресенье, 02 Января 2011, 22:49
СтранникДата: Воскресенье, 02 Января 2011, 22:44 | Сообщение # 110
почти ветеран
Сейчас нет на сайте
Quote (K0DAK47)
Странник, да, но не закрывать же тему. Давайте что - нибудь другое обсуждать.

Нет,тему не закрывать. Но мне в 0:42 что-то обсуждать проблемно. Я спать smile
Завтра продолжим.
P.S. Теме не дайте умереть.


FreeBitcoin - лучший из биткоин-кранов
EvkoevДата: Воскресенье, 02 Января 2011, 22:44 | Сообщение # 111
заслуженный участник
Сейчас нет на сайте
Возник вопрос:
Могут ли сталкиваться друг с другом 2д-объекты?
Если да, то каким образом, они ведь не имеют высоты (глубины)?
Вопрос, естественно не про игры, а про настоящие представления о 2д-пространстве.
LumineSky@FiДата: Воскресенье, 02 Января 2011, 22:50 | Сообщение # 112
почетный гость
Сейчас нет на сайте
Quote (Serg1971)
Вот, я сделал Множество Мандельброта на комплексной плоскости...

а я сделал другой фрактал, поставил два зеркала друг возле друга.

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

Добавлено (02.01.2011, 22:50)
---------------------------------------------

Quote (Evkoev)
Могут ли сталкиваться друг с другом 2д-объекты?

да, планиметрию в школе все проходили, если точка принадлежит двум объектам - то это называется столкновением smile


Гильдия людей поклоняющихся "ТРАНСФОРМАТОРАМ".
Гильдия людей которые видели как "Крабы" едят "Кошек".


Сообщение отредактировал LumineSky@Fi - Воскресенье, 02 Января 2011, 22:51
K0DAK47Дата: Воскресенье, 02 Января 2011, 22:51 | Сообщение # 113
Cat Development
Сейчас нет на сайте
Есть прожки для создания фракталов. Я пользуюсь Apophysis 202

Добавлено (02.01.2011, 22:51)
---------------------------------------------
Подобное Мандельброту легко создаётся.


.xm
Шаблон для разработчиков
EvkoevДата: Воскресенье, 02 Января 2011, 22:52 | Сообщение # 114
заслуженный участник
Сейчас нет на сайте
Quote (LumineSky@Fi)
планиметрию в школе все проходили

Конечно, после такого немного стыдно, но всё же
Quote (LumineSky@Fi)
если у есть точки которьіе принадлежат двум объектам - то это называется столкновением

Можно объяснить подробнее?
Serg1971Дата: Воскресенье, 02 Января 2011, 22:55 | Сообщение # 115
Весёлый программист
Сейчас нет на сайте
Quote (K0DAK47)
Подобное Мандельброту легко создаётся.

Но интересней - самому своими руками сделать! smile Тем более - можно изменив пару параметров - рассмотреть участок как под микроскопом... Величина увеличения - зависит от разрядности числа!


LumineSky@FiДата: Воскресенье, 02 Января 2011, 22:57 | Сообщение # 116
почетный гость
Сейчас нет на сайте
Quote (Evkoev)
Можно объяснить подробнее?

Блин чет я как то криво написал, изменил
-----------------------------------------
если точка принадлежит двум объектам - то это называется столкновением


Гильдия людей поклоняющихся "ТРАНСФОРМАТОРАМ".
Гильдия людей которые видели как "Крабы" едят "Кошек".
EvkoevДата: Воскресенье, 02 Января 2011, 23:06 | Сообщение # 117
заслуженный участник
Сейчас нет на сайте
Quote (LumineSky@Fi)
если точка принадлежит двум объектам - то это называется столкновением

Ах, теперь понятно, спасибо, но я немного другое имел в виду.
Два 2д-объекта встертились в одной точке. Теперь представим, что эти объекты продолжили своё движение на встречу друг другу.
Что произойдёт? Они наслоятся? Как, если нет высоты? Оттолкнутся? Опять же, как без высоты?


Сообщение отредактировал Evkoev - Воскресенье, 02 Января 2011, 23:07
Serg1971Дата: Воскресенье, 02 Января 2011, 23:18 | Сообщение # 118
Весёлый программист
Сейчас нет на сайте
Evkoev, лично мне кажется - они как тени на стене должны пересечься, и пройти свободно! biggrin

Добавлено (02.01.2011, 23:18)
---------------------------------------------
А вот мне тоже интересно - может ли одна бесконечность, быть больше другой бесконечности? smile Поясню вопрос - вот представьте бесконечность из чисел 1, 2, 3, 4... и бесконечность 1.1, 1.2, 1.3, 1.4 .... Ведь во второй по сути - больше чисел на любом промежутке! smile


EvkoevДата: Воскресенье, 02 Января 2011, 23:27 | Сообщение # 119
заслуженный участник
Сейчас нет на сайте
Serg1971, если без больших научных изысканий, то отвечу как-то так:
Одна бесконечность всегда меньше другой бесконечности, но одновременно больше другой бесконечности.

P.S. Народ исчез, стало не так весело.

Serg1971Дата: Воскресенье, 02 Января 2011, 23:33 | Сообщение # 120
Весёлый программист
Сейчас нет на сайте
Quote (Evkoev)
P.S. Народ исчез, стало не так весело.

Все спать! smile Завтра продолжим я думаю!


Форум игроделов » Программирование » Общие обсуждения программистов » Научные причуды
  • Страница 6 из 7
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг