Skip to content

Commit 977374b

Browse files
committed
изменено описание
1 parent ad4eb55 commit 977374b

File tree

14 files changed

+412
-199
lines changed

14 files changed

+412
-199
lines changed

README.md

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
1-
# strange_pattern
2-
**Программа для генерации бесконечного узора**
1+
### Программа для генерации бесконечного узора
2+
- *Статья №1 на habr.com* [https://habr.com/post/417861/](https://habr.com/post/417861/)
3+
- *Статья №2 на habr.com* [https://habr.com/post/420225/](https://habr.com/post/420225/)
34

4-
# Что делает данная программа?
5+
### Описание
56
Программа генерирует бесконечный узор, где каждая точка пространства сама определяет свое состояние вне зависимости от других точек.
67
Это достигается за счет использования некоторой операции над координатами точки и дальнейшей проверки полученного числа на простоту.
8+
Изначальная идея состояла в проверке числа, полученного операцией X XOR Y, на простоту, где X и Y - координаты точки. Такой простой алгоритм дает следующий узор:
79

8-
# Как работает данная программа?
10+
![strange_pattern_example](doc/example_main.png)
11+
12+
### Как работает данная программа?
913
Пример кода:
10-
```
14+
```C++
1115
long long gx; // координата X точки
1216
long long gy; // координата Y точки
1317
// задаем координаты точки
1418
//...
1519

16-
long long temp = gx ^ gy; // один из вариантов предварительной обработки координат
20+
long long temp = gx ^ gy; // основной вариант предварительной обработки координат
1721

1822
// проверка числа temp на простоту
1923
// isprime - это Алгоритм Бэйли-Померанс-Селфридж-Вагстафф (BPSW) проверки n на простоту
@@ -23,11 +27,19 @@ if(BPSW::isprime(std::abs(temp)) == true) {
2327
// точка пустая
2428
}
2529
```
26-
# Пример работы программы
30+
31+
### Пример работы программы
2732
:tv:[Видео1](https://www.youtube.com/watch?v=F84fgTK2kp0).
2833
:tv:[Видео2](https://www.youtube.com/watch?v=Fx0XS5cNrT0).
2934

30-
# Управление программой
35+
### Для пользователей Windows
36+
Вы можете воспользоваться готовой программой *2d_pattern.exe*, которая находится в архиве в папке *bin*.
37+
Не забудьте в консоли запустившейся программы ввести ширину и высоту окна.
38+
39+
Также можно сгенерировать звук на основе XOR алгоритма узора. Для этого в папке *bin* есть программа *simple_sound*.
40+
Введите длину трека в секундах, длину одного тика
41+
42+
#Управление программой
3143
Переключитель на экран программы, который отображает узор, и нажимайте соответствующие клавиши.
3244
Убедитесь, что язык ввода английский.
3345
- W двигаться вверх
@@ -41,9 +53,8 @@ if(BPSW::isprime(std::abs(temp)) == true) {
4153
- I сохранить узор в формате jpg
4254
- V начать или остановить запись видео в формате avi
4355

44-
# Для пользователей Windows
45-
Вы можете воспользоваться готовой программой, которая находится в архиве в папке bin.
46-
Не забудьте в консоли запустившейся программы ввести ширину и высоту окна.
47-
48-
# Программа на JavaScript
49-
https://mashed-potatoes.github.io/Strange_Pattern.js/
56+
### Реализация алгоритма другими пользователями
57+
- [Программа на JavaScript] (https://mashed-potatoes.github.io/Strange_Pattern.js/)
58+
![example_java](doc/example_java.png)
59+
- [Шейдер на www.shadertoy.com] (https://www.shadertoy.com/view/4tcyWH)
60+
![example_shadertoy](doc/example_shadertoy.png)

doc/example_java.png

9.24 KB
Loading

doc/example_main.png

9.15 KB
Loading

doc/example_shadertoy.png

475 KB
Loading

program/2d_pattern/2d_pattern.cbp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
<Add option="-fexceptions" />
3737
</Compiler>
3838
<Unit filename="../../src/BPSW.hpp" />
39+
<Unit filename="../../src/crc64.cpp" />
40+
<Unit filename="../../src/crc64.hpp" />
41+
<Unit filename="../../src/strange_patterns.hpp" />
3942
<Unit filename="main.cpp" />
4043
<Extensions>
4144
<code_completion />

program/2d_pattern/2d_pattern.depend

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
# depslib dependency file v1.0
2-
1534073470 source:d:\_repoz\strange_pattern\program\2d_pattern\main.cpp
2+
1543069602 source:d:\_repoz\strange_pattern\program\2d_pattern\main.cpp
33
<iostream>
4-
"BPSW.hpp"
5-
"cmath"
64
"opencv2/core.hpp"
75
"opencv2/opencv.hpp"
6+
"strange_patterns.hpp"
87
"dir.h"
98

10-
1534073693 d:\_repoz\strange_pattern\src\bpsw.hpp
9+
1543069625 d:\_repoz\strange_pattern\src\bpsw.hpp
1110
<algorithm>
1211
<cmath>
1312
<map>
1413
<vector>
1514

15+
1543068782 source:d:\_repoz\strange_pattern\src\crc64.cpp
16+
"crc64.hpp"
17+
18+
1543068743 d:\_repoz\strange_pattern\src\crc64.hpp
19+
20+
1543069082 d:\_repoz\strange_pattern\src\strange_patterns.hpp
21+
"BPSW.hpp"
22+
"crc64.hpp"
23+
"cmath"
24+

program/2d_pattern/2d_pattern.layout

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
<CodeBlocks_layout_file>
33
<FileVersion major="1" minor="0" />
44
<ActiveTarget name="Release" />
5-
<File name="main.cpp" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
5+
<File name="..\..\src\BPSW.hpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
66
<Cursor>
7-
<Cursor1 position="5942" topLine="136" />
7+
<Cursor1 position="2975" topLine="63" />
88
</Cursor>
99
</File>
10-
<File name="..\..\src\BPSW.hpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
10+
<File name="main.cpp" open="1" top="1" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
1111
<Cursor>
12-
<Cursor1 position="2975" topLine="63" />
12+
<Cursor1 position="5129" topLine="125" />
1313
</Cursor>
1414
</File>
1515
</CodeBlocks_layout_file>
512 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)