Форум программистов, компьютерный форум, киберфорум
Hretgir
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Обратный волновой алгоритм с указателями

Запись от Hretgir размещена 25.08.2015 в 15:20
Обновил(-а) Hretgir 25.08.2015 в 15:35

* * Эскизы по алгоритму, определяющему расположение вершин треугольника, на сетке координат. Все вершины имеют свой ID и расположены по направлению вращения часовой стрелки. Треугольники, по данной системе,* делятся на два типа: идеальные и не идеальные, которые в свою очередь делятся на прямые и обратные, но суть не в том, как они делятся.
Суть в отношениях вершин:
если вершины имеют одну координату на оси Y, то отношение равно 0, если вершина имеет меньший координат, чем следующая, то её отношение равно -1, и 1 соответственно, если больший координат по Y.
Имя треугольника записано как три отношения вершин, где к каждому прибавлено2, например 3, 1, 2, но тот-же тип треугольника может иметь имя 1,2,3 и 2,3,1 (обычное смещение).
Далее таблица с типами треугольников, но в таблице всё прибавлено на 2, потому что 0 недопустим в таблице, он просто означает, что данная позиция в типе отсутвтует.
https://www.cyberforum.ru/blog... 1440505314
Вход в идентификационную таблицу осуществляется по первому отношению в имени, в строку с номером из имени. Так если имя треугольника 2,3,1, то программа войдёт в вторую строку первого и второго столбца, других вариантов у неё нет, и сравнит значение ячеек с следующим отношением из имени. Так если следующее отношение из имени будет 3, то программа уже определит тип треугольника как второй, по значениям столбца.
* *В общем, этот алгоритм получается волновой, но с указателями, он в общем определяет путь, но по указателям. И дерева не получается, потому что в общем допускается смещение в именах треугольников, вместо дерева получается что-то напоминающее поля. Вот вчера я нарисовал для двух типов треугольников, не идеальных: прямых и обратных, синие и красные стрелки, или наоборот (не помню). Но суть в том-что принцип один - волновой алгоритм, но у меня идентифицирующий волновой алгоритм с указателями, и выглядит он больше как поля из физики, чем деревья из биологии.

Сейчас этот алгоритм я пытаюсь в тиснуть в систему "условия", данная система мной была придумана (совсем недавно) из принципа и нежелания считать постулаты программирования за идеалы
* Вот код системы "условия", который проверяет расположение вершин: по часовой стрелке или против.
http://pastebin.com/kehFADTa
Но в общем, если взять ветку дерева и перевести в волнойвой с указателями, то она и останется веткой, потому что ветвь имеет чётко обозначенное начало. А начало - оценка субъекта, на самом деле объективного начала нету, ну или абсолютного. Ветка - субъективная стректура, воспринимаемая субъектом, на самом деле всё намного сложнее и далеко от замыслов субъекта. Древо-каскад
https://upload.wikimedia.org/w... rfall2.jpg
* *Вот "портяночка"кода, которая работает по принципу обратного волнового алгоритма (в учебниках нет, возможно нет и нигде, но думаю, что где-то должно быть).
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
procedure calcTypeTreangl;
 var
 naVylet : array [0..3] of byte;
 counter1, counter2, counter3 : byte;
 proctonnoe : byte;
 i,k,t:integer;
 begin
 FillByte ( naVylet , 4 , 1 ) ;
 for i := 0 to 2 do
 begin
 counter1:=i;
 if counter1 > 2 then counter1 := 0;
 counter2 := i+1;
 if counter2 > 2 then counter2 := 0;
 for k :=0 to 3 do
 begin
 if naVylet[k] = 1 then
 begin
* *for t := 0 to 1 do
* *begin
* *if posledovatelnostVobrazah[0,k,copyTimeBoxMaxY.PropsTreangl.nameTreangle[counter1],t]= copyTimeBoxMaxY.PropsTreangl.nameTreangle[counter2] then
* *begin
* ** naVylet[k] := 1;
* ** break;
* ** end;
* *naVylet[k] := 0;
* *end;
 end;
 end;
 end;
 for i := 0 to 3 do
 begin
 if naVylet[i] = 1 then
 begin
 copyTimeBoxMaxY.PropsTreangl.typeTreangle := i;
 copyTimeBoxMaxY.PropsTreangl.sequence := posledovatelnostVobrazah[1,copyTimeBoxMaxY.PropsTreangl.typeTreangle,counter1,t];
end;
 end;
 end;
В портянке скорее всего есть ошибки, но нет резона их исправлять - лучше переписать всё под систему.
Вообще системы делаются для избежания ошибок, система - как навигационные приборы.
Вот этот код нужно переписать под систему "условия", код которой приведён по линку.
Миниатюры
Нажмите на изображение для увеличения
Название: voln.jpg
Просмотров: 847
Размер:	39.9 Кб
ID:	3277   Нажмите на изображение для увеличения
Название: volnovoi.jpg
Просмотров: 641
Размер:	31.5 Кб
ID:	3278  
Показов 831 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.