Changes

Jump to: navigation, search

Direction

30,014 bytes added, 09:58, 9 May 2018
Created page with "'''Home * Chess * Squares * Direction''' FILE:WInd Rose Aguiar.png|border|right|thumb|wind rose <ref>Replica of a wind rose from a chart of Jorge de A..."
'''[[Main Page|Home]] * [[Chess]] * [[Squares]] * Direction'''

[[FILE:WInd Rose Aguiar.png|border|right|thumb|wind rose <ref>Replica of a wind rose from a chart of Jorge de Aguiar, 1492, [https://commons.wikimedia.org/wiki/Compass_rose Compass rose - Wikimedia Commons]</ref>]]

The '''Direction''' is a information of the geometrical relation of two squares on a [[Chessboard|chessboard]] without the information of [[Distance|distance]]. Mathematically, direction may be uniquely specified by a [https://en.wikipedia.org/wiki/Unit_vector unit vector], or equivalently by the [https://en.wikipedia.org/wiki/Angle angle] with respect to a specified set of axes.

<span id="MoveDirections"></span>
=Move Directions=
Directions on the chessboard are usually related to from- to-coordinates of [[Moves|moves]], that is four orthogonal and four diagonal ray-directions plus the eight directions a [[Knight|knight]] may move. Following [https://en.wikipedia.org/wiki/Compass_rose Compass roses] give the directions and single step increments of an [[8x8 Board]].
<span id="RayDirections"></span>
==Ray Directions==
<pre>
northwest north northeast
noWe nort noEa
+7 +8 +9
\ | /
west -1 <- 0 -> +1 east
/ | \
-9 -8 -7
soWe sout soEa
southwest south southeast
</pre>
<span id="KnightDirections"></span>
==Knight Directions==
<pre>
noNoWe noNoEa
+15 +17
| |
noWeWe +6 __| |__+10 noEaEa
\ /
>0<
__ / \ __
soWeWe -10 | | -6 soEaEa
| |
-17 -15
soSoWe soSoEa
</pre>

=Directions between any Squares=
==In Degrees==
Based on [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions arctangent] of the quotient of [[Files#FileDistance|file-]] and [[Ranks#RankDistance|rank-distance]], one may calculate following 15 times 15 sheet with all possible angels which might occur between any squares in [https://en.wikipedia.org/wiki/Degree_%28angle%29 Degree] (rounded to integer). Inner squares whose angle occur on farther squares are left blank, so each angle given is distinct, 144 from 224 (15x15-1), move directions are given in bold:

{| class="wikitable"
|-
| style="text-align:right;" | '''315'''
| style="text-align:right;" | 319
| style="text-align:right;" | 324
| style="text-align:right;" | 330
| style="text-align:right;" | 337
| style="text-align:right;" | 344
| style="text-align:right;" | 352
| style="text-align:right;" | '''0'''
| style="text-align:right;" | 8
| style="text-align:right;" | 16
| style="text-align:right;" | 23
| style="text-align:right;" | 30
| style="text-align:right;" | 36
| style="text-align:right;" | 41
| style="text-align:right;" | '''45'''
|-
| style="text-align:right;" | 311
| style="text-align:right;" |
| style="text-align:right;" | 320
| style="text-align:right;" | 326
| style="text-align:right;" | '''333'''
| style="text-align:right;" | 342
| style="text-align:right;" | 351
| style="text-align:center;" | |
| style="text-align:right;" | 9
| style="text-align:right;" | 18
| style="text-align:right;" | '''27'''
| style="text-align:right;" | 34
| style="text-align:right;" | 40
| style="text-align:right;" |
| style="text-align:right;" | 49
|-
| style="text-align:right;" | 306
| style="text-align:right;" | 310
| style="text-align:right;" |
| style="text-align:right;" | 321
| style="text-align:right;" | 329
| style="text-align:right;" | 338
| style="text-align:right;" | 349
| style="text-align:center;" | |
| style="text-align:right;" | 11
| style="text-align:right;" | 22
| style="text-align:right;" | 31
| style="text-align:right;" | 39
| style="text-align:right;" |
| style="text-align:right;" | 50
| style="text-align:right;" | 54
|-
| style="text-align:right;" | 300
| style="text-align:right;" | 304
| style="text-align:right;" | 309
| style="text-align:right;" |
| style="text-align:right;" | 323
| style="text-align:right;" |
| style="text-align:right;" | 346
| style="text-align:center;" | |
| style="text-align:right;" | 14
| style="text-align:right;" |
| style="text-align:right;" | 37
| style="text-align:right;" |
| style="text-align:right;" | 51
| style="text-align:right;" | 56
| style="text-align:right;" | 60
|-
| style="text-align:right;" | 293
| style="text-align:right;" | '''297'''
| style="text-align:right;" | 301
| style="text-align:right;" | 307
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 53
| style="text-align:right;" | 59
| style="text-align:right;" | '''63'''
| style="text-align:right;" | 67
|-
| style="text-align:right;" | 286
| style="text-align:right;" | 288
| style="text-align:right;" | 292
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 68
| style="text-align:right;" | 72
| style="text-align:right;" | 74
|-
| style="text-align:right;" | 278
| style="text-align:right;" | 279
| style="text-align:right;" | 281
| style="text-align:right;" | 284
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 76
| style="text-align:right;" | 79
| style="text-align:right;" | 81
| style="text-align:right;" | 82
|-
| style="text-align:center;" | '''270'''
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | +
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:right;" | '''90'''
|-
| style="text-align:right;" | 262
| style="text-align:right;" | 261
| style="text-align:right;" | 259
| style="text-align:right;" | 256
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 104
| style="text-align:right;" | 101
| style="text-align:right;" | 99
| style="text-align:right;" | 98
|-
| style="text-align:right;" | 254
| style="text-align:right;" | 252
| style="text-align:right;" | 248
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 112
| style="text-align:right;" | 108
| style="text-align:right;" | 106
|-
| style="text-align:right;" | 247
| style="text-align:right;" | '''243'''
| style="text-align:right;" | 239
| style="text-align:right;" | 233
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 127
| style="text-align:right;" | 121
| style="text-align:right;" | '''117'''
| style="text-align:right;" | 113
|-
| style="text-align:right;" | 240
| style="text-align:right;" | 236
| style="text-align:right;" | 231
| style="text-align:right;" |
| style="text-align:right;" | 217
| style="text-align:right;" |
| style="text-align:right;" | 194
| style="text-align:center;" | |
| style="text-align:right;" | 166
| style="text-align:right;" |
| style="text-align:right;" | 143
| style="text-align:right;" |
| style="text-align:right;" | 129
| style="text-align:right;" | 124
| style="text-align:right;" | 120
|-
| style="text-align:right;" | 234
| style="text-align:right;" | 230
| style="text-align:right;" |
| style="text-align:right;" | 219
| style="text-align:right;" | 211
| style="text-align:right;" | 202
| style="text-align:right;" | 191
| style="text-align:center;" | |
| style="text-align:right;" | 169
| style="text-align:right;" | 158
| style="text-align:right;" | 149
| style="text-align:right;" | 141
| style="text-align:right;" |
| style="text-align:right;" | 130
| style="text-align:right;" | 126
|-
| style="text-align:right;" | 229
| style="text-align:right;" |
| style="text-align:right;" | 220
| style="text-align:right;" | 214
| style="text-align:right;" | '''207'''
| style="text-align:right;" | 198
| style="text-align:right;" | 189
| style="text-align:center;" | |
| style="text-align:right;" | 171
| style="text-align:right;" | 162
| style="text-align:right;" | '''153'''
| style="text-align:right;" | 146
| style="text-align:right;" | 140
| style="text-align:right;" |
| style="text-align:right;" | 131
|-
| style="text-align:right;" | '''225'''
| style="text-align:right;" | 221
| style="text-align:right;" | 216
| style="text-align:right;" | 210
| style="text-align:right;" | 203
| style="text-align:right;" | 196
| style="text-align:right;" | 188
| style="text-align:center;" | '''180'''
| style="text-align:right;" | 172
| style="text-align:right;" | 164
| style="text-align:right;" | 157
| style="text-align:right;" | 150
| style="text-align:right;" | 144
| style="text-align:right;" | 139
| style="text-align:right;" | '''135'''
|}
==In Begrees==
Enumerating all distinct integer degrees of the above rose in order but without any gaps, leaves a circle with 144 board degrees (Begrees) - only the 16 angels with modulo 9 equals zero are actually covered by move directions (bold). A possible application of Begrees is to select moves with a direction to an "interesting" area of the board, specified by some center- or gravity square.

{| class="wikitable"
|-
| style="text-align:right;" | '''126'''
| style="text-align:right;" | 127
| style="text-align:right;" | 131
| style="text-align:right;" | 134
| style="text-align:right;" | 136
| style="text-align:right;" | 139
| style="text-align:right;" | 143
| style="text-align:right;" | '''0'''
| style="text-align:right;" | 1
| style="text-align:right;" | 5
| style="text-align:right;" | 8
| style="text-align:right;" | 10
| style="text-align:right;" | 13
| style="text-align:right;" | 17
| style="text-align:right;" | '''18'''
|-
| style="text-align:right;" | 125
| style="text-align:right;" |
| style="text-align:right;" | 128
| style="text-align:right;" | 132
| style="text-align:right;" | '''135'''
| style="text-align:right;" | 138
| style="text-align:right;" | 142
| style="text-align:center;" | |
| style="text-align:right;" | 2
| style="text-align:right;" | 6
| style="text-align:right;" | '''9'''
| style="text-align:right;" | 12
| style="text-align:right;" | 16
| style="text-align:right;" |
| style="text-align:right;" | 19
|-
| style="text-align:right;" | 121
| style="text-align:right;" | 124
| style="text-align:right;" |
| style="text-align:right;" | 129
| style="text-align:right;" | 133
| style="text-align:right;" | 137
| style="text-align:right;" | 141
| style="text-align:center;" | |
| style="text-align:right;" | 3
| style="text-align:right;" | 7
| style="text-align:right;" | 11
| style="text-align:right;" | 15
| style="text-align:right;" |
| style="text-align:right;" | 20
| style="text-align:right;" | 23
|-
| style="text-align:right;" | 118
| style="text-align:right;" | 120
| style="text-align:right;" | 123
| style="text-align:right;" |
| style="text-align:right;" | 130
| style="text-align:right;" |
| style="text-align:right;" | 140
| style="text-align:center;" | |
| style="text-align:right;" | 4
| style="text-align:right;" |
| style="text-align:right;" | 14
| style="text-align:right;" |
| style="text-align:right;" | 21
| style="text-align:right;" | 24
| style="text-align:right;" | 26
|-
| style="text-align:right;" | 116
| style="text-align:right;" | '''117'''
| style="text-align:right;" | 119
| style="text-align:right;" | 122
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 22
| style="text-align:right;" | 25
| style="text-align:right;" | '''27'''
| style="text-align:right;" | 28
|-
| style="text-align:right;" | 113
| style="text-align:right;" | 114
| style="text-align:right;" | 115
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 29
| style="text-align:right;" | 30
| style="text-align:right;" | 31
|-
| style="text-align:right;" | 109
| style="text-align:right;" | 110
| style="text-align:right;" | 111
| style="text-align:right;" | 112
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 32
| style="text-align:right;" | 33
| style="text-align:right;" | 34
| style="text-align:right;" | 35
|-
| style="text-align:center;" | '''108'''
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | +
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:center;" | -
| style="text-align:right;" | '''36'''
|-
| style="text-align:right;" | 107
| style="text-align:right;" | 106
| style="text-align:right;" | 105
| style="text-align:right;" | 104
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 40
| style="text-align:right;" | 39
| style="text-align:right;" | 38
| style="text-align:right;" | 37
|-
| style="text-align:right;" | 103
| style="text-align:right;" | 102
| style="text-align:right;" | 101
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 43
| style="text-align:right;" | 42
| style="text-align:right;" | 41
|-
| style="text-align:right;" | 100
| style="text-align:right;" | '''99'''
| style="text-align:right;" | 97
| style="text-align:right;" | 94
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:center;" | |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" |
| style="text-align:right;" | 50
| style="text-align:right;" | 47
| style="text-align:right;" | '''45'''
| style="text-align:right;" | 44
|-
| style="text-align:right;" | 98
| style="text-align:right;" | 96
| style="text-align:right;" | 93
| style="text-align:right;" |
| style="text-align:right;" | 86
| style="text-align:right;" |
| style="text-align:right;" | 76
| style="text-align:center;" | |
| style="text-align:right;" | 68
| style="text-align:right;" |
| style="text-align:right;" | 58
| style="text-align:right;" |
| style="text-align:right;" | 51
| style="text-align:right;" | 48
| style="text-align:right;" | 46
|-
| style="text-align:right;" | 95
| style="text-align:right;" | 92
| style="text-align:right;" |
| style="text-align:right;" | 87
| style="text-align:right;" | 83
| style="text-align:right;" | 79
| style="text-align:right;" | 75
| style="text-align:center;" | |
| style="text-align:right;" | 69
| style="text-align:right;" | 65
| style="text-align:right;" | 61
| style="text-align:right;" | 57
| style="text-align:right;" |
| style="text-align:right;" | 52
| style="text-align:right;" | 49
|-
| style="text-align:right;" | 91
| style="text-align:right;" |
| style="text-align:right;" | 88
| style="text-align:right;" | 84
| style="text-align:right;" | '''81'''
| style="text-align:right;" | 78
| style="text-align:right;" | 74
| style="text-align:center;" | |
| style="text-align:right;" | 70
| style="text-align:right;" | 66
| style="text-align:right;" | '''63'''
| style="text-align:right;" | 60
| style="text-align:right;" | 56
| style="text-align:right;" |
| style="text-align:right;" | 53
|-
| style="text-align:right;" | '''90'''
| style="text-align:right;" | 89
| style="text-align:right;" | 85
| style="text-align:right;" | 82
| style="text-align:right;" | 80
| style="text-align:right;" | 77
| style="text-align:right;" | 73
| style="text-align:center;" | _'''72'''
| style="text-align:right;" | _71
| style="text-align:right;" | _67
| style="text-align:right;" | _64
| style="text-align:right;" | _62
| style="text-align:right;" | _59
| style="text-align:right;" | _55
| style="text-align:right;" | _'''54'''
|}
Opposed to the compass-rose above, all inner squares are filled with Begrees as well.
{| class="wikitable"
|-
| style="text-align:right;" | '''126'''
| style="text-align:right;" | 127
| style="text-align:right;" | 131
| style="text-align:right;" | 134
| style="text-align:right;" | 136
| style="text-align:right;" | 139
| style="text-align:right;" | 143
| style="text-align:right;" | '''0'''
| style="text-align:right;" | 1
| style="text-align:right;" | 5
| style="text-align:right;" | 8
| style="text-align:right;" | 10
| style="text-align:right;" | 13
| style="text-align:right;" | 17
| style="text-align:right;" | '''18'''
|-
| style="text-align:right;" | 125
| style="text-align:right;" | '''126'''
| style="text-align:right;" | 128
| style="text-align:right;" | 132
| style="text-align:right;" | '''135'''
| style="text-align:right;" | 138
| style="text-align:right;" | 142
| style="text-align:right;" | '''0'''
| style="text-align:right;" | 2
| style="text-align:right;" | 6
| style="text-align:right;" | '''9'''
| style="text-align:right;" | 12
| style="text-align:right;" | 16
| style="text-align:right;" | '''18'''
| style="text-align:right;" | 19
|-
| style="text-align:right;" | 121
| style="text-align:right;" | 124
| style="text-align:right;" | '''126'''
| style="text-align:right;" | 129
| style="text-align:right;" | 133
| style="text-align:right;" | 137
| style="text-align:right;" | 141
| style="text-align:right;" | '''0'''
| style="text-align:right;" | 3
| style="text-align:right;" | 7
| style="text-align:right;" | 11
| style="text-align:right;" | 15
| style="text-align:right;" | '''18'''
| style="text-align:right;" | 20
| style="text-align:right;" | 23
|-
| style="text-align:right;" | 118
| style="text-align:right;" | 120
| style="text-align:right;" | 123
| style="text-align:right;" | '''126'''
| style="text-align:right;" | 130
| style="text-align:right;" | '''135'''
| style="text-align:right;" | 140
| style="text-align:right;" | '''0'''
| style="text-align:right;" | 4
| style="text-align:right;" | '''9'''
| style="text-align:right;" | 14
| style="text-align:right;" | '''18'''
| style="text-align:right;" | 21
| style="text-align:right;" | 24
| style="text-align:right;" | 26
|-
| style="text-align:right;" | 116
| style="text-align:right;" | '''117'''
| style="text-align:right;" | 119
| style="text-align:right;" | 122
| style="text-align:right;" | '''126'''
| style="text-align:right;" | 132
| style="text-align:right;" | 138
| style="text-align:right;" | '''0'''
| style="text-align:right;" | 6
| style="text-align:right;" | 12
| style="text-align:right;" | '''18'''
| style="text-align:right;" | 22
| style="text-align:right;" | 25
| style="text-align:right;" | '''27'''
| style="text-align:right;" | 28
|-
| style="text-align:right;" | 113
| style="text-align:right;" | 114
| style="text-align:right;" | 115
| style="text-align:right;" | '''117'''
| style="text-align:right;" | 120
| style="text-align:right;" | '''126'''
| style="text-align:right;" | '''135'''
| style="text-align:right;" | '''0'''
| style="text-align:right;" | '''9'''
| style="text-align:right;" | '''18'''
| style="text-align:right;" | 24
| style="text-align:right;" | '''27'''
| style="text-align:right;" | 29
| style="text-align:right;" | 30
| style="text-align:right;" | 31
|-
| style="text-align:right;" | 109
| style="text-align:right;" | 110
| style="text-align:right;" | 111
| style="text-align:right;" | 112
| style="text-align:right;" | 114
| style="text-align:right;" | '''117'''
| style="text-align:right;" | '''126'''
| style="text-align:right;" | '''0'''
| style="text-align:right;" | '''18'''
| style="text-align:right;" | '''27'''
| style="text-align:right;" | 30
| style="text-align:right;" | 32
| style="text-align:right;" | 33
| style="text-align:right;" | 34
| style="text-align:right;" | 35
|-
| style="text-align:right;" | '''108'''
| style="text-align:right;" | '''108'''
| style="text-align:right;" | '''108'''
| style="text-align:right;" | '''108'''
| style="text-align:right;" | '''108'''
| style="text-align:right;" | '''108'''
| style="text-align:right;" | '''108'''
| style="text-align:center;" | +
| style="text-align:right;" | '''36'''
| style="text-align:right;" | '''36'''
| style="text-align:right;" | '''36'''
| style="text-align:right;" | '''36'''
| style="text-align:right;" | '''36'''
| style="text-align:right;" | '''36'''
| style="text-align:right;" | '''36'''
|-
| style="text-align:right;" | 107
| style="text-align:right;" | 106
| style="text-align:right;" | 105
| style="text-align:right;" | 104
| style="text-align:right;" | 102
| style="text-align:right;" | '''99'''
| style="text-align:right;" | '''90'''
| style="text-align:right;" | '''72'''
| style="text-align:right;" | '''54'''
| style="text-align:right;" | '''45'''
| style="text-align:right;" | 42
| style="text-align:right;" | 40
| style="text-align:right;" | 39
| style="text-align:right;" | 38
| style="text-align:right;" | 37
|-
| style="text-align:right;" | 103
| style="text-align:right;" | 102
| style="text-align:right;" | 101
| style="text-align:right;" | '''99'''
| style="text-align:right;" | 96
| style="text-align:right;" | '''90'''
| style="text-align:right;" | '''81'''
| style="text-align:right;" | '''72'''
| style="text-align:right;" | '''63'''
| style="text-align:right;" | '''54'''
| style="text-align:right;" | 48
| style="text-align:right;" | '''45'''
| style="text-align:right;" | 43
| style="text-align:right;" | 42
| style="text-align:right;" | 41
|-
| style="text-align:right;" | 100
| style="text-align:right;" | '''99'''
| style="text-align:right;" | 97
| style="text-align:right;" | 94
| style="text-align:right;" | '''90'''
| style="text-align:right;" | 84
| style="text-align:right;" | 78
| style="text-align:right;" | '''72'''
| style="text-align:right;" | 66
| style="text-align:right;" | 60
| style="text-align:right;" | '''54'''
| style="text-align:right;" | 50
| style="text-align:right;" | 47
| style="text-align:right;" | '''45'''
| style="text-align:right;" | 44
|-
| style="text-align:right;" | 98
| style="text-align:right;" | 96
| style="text-align:right;" | 93
| style="text-align:right;" | '''90'''
| style="text-align:right;" | 86
| style="text-align:right;" | '''81'''
| style="text-align:right;" | 76
| style="text-align:right;" | '''72'''
| style="text-align:right;" | 68
| style="text-align:right;" | '''63'''
| style="text-align:right;" | 58
| style="text-align:right;" | '''54'''
| style="text-align:right;" | 51
| style="text-align:right;" | 48
| style="text-align:right;" | 46
|-
| style="text-align:right;" | 95
| style="text-align:right;" | 92
| style="text-align:right;" | '''90'''
| style="text-align:right;" | 87
| style="text-align:right;" | 83
| style="text-align:right;" | 79
| style="text-align:right;" | 75
| style="text-align:right;" | '''72'''
| style="text-align:right;" | 69
| style="text-align:right;" | 65
| style="text-align:right;" | 61
| style="text-align:right;" | 57
| style="text-align:right;" | '''54'''
| style="text-align:right;" | 52
| style="text-align:right;" | 49
|-
| style="text-align:right;" | 91
| style="text-align:right;" | '''90'''
| style="text-align:right;" | 88
| style="text-align:right;" | 84
| style="text-align:right;" | '''81'''
| style="text-align:right;" | 78
| style="text-align:right;" | 74
| style="text-align:right;" | '''72'''
| style="text-align:right;" | 70
| style="text-align:right;" | 66
| style="text-align:right;" | '''63'''
| style="text-align:right;" | 60
| style="text-align:right;" | 56
| style="text-align:right;" | '''54'''
| style="text-align:right;" | 53
|-
| style="text-align:right;" | '''90'''
| style="text-align:right;" | 89
| style="text-align:right;" | 85
| style="text-align:right;" | 82
| style="text-align:right;" | 80
| style="text-align:right;" | 77
| style="text-align:right;" | 73
| style="text-align:right;" | _'''72'''
| style="text-align:right;" | _71
| style="text-align:right;" | _67
| style="text-align:right;" | _64
| style="text-align:right;" | _62
| style="text-align:right;" | _59
| style="text-align:right;" | _55
| style="text-align:right;" | _'''54'''
|}

=Lookup=
Since the computation is quite expensive, a two dimensional table with pre-calculated values might be used for that purpose. The enumerated type enumDir might contain only ray- or move directions, Degrees, Begrees, or a structure combining them.
<pre>
enumDir arrDirection[64][64]; // 4 KByte

enumDir direction(enumSquare sq1, enumSquare sq2) {
return arrDirection[sq1][sq2];
}
</pre>
=Lookup by 0x88 Difference=
The [[0x88]] [[0x88#SquareRelations|square relation]] permits a denser lookup approach. The difference of valid 0x88 coordinates of two squares is unique with respect to [[Distance|distance]] and direction. That way, one can greatly reduce the size of the lookup [[Array|array]] to only 240 instead of 4096 elements. Some additional computation required, if one has to convert usual square coordinates to 0x88. If one already relies on 0x88 coordinates, it becomes even cheaper:
<pre>
enumDir arrDirectionBy0x88Diff[240];

unsigned int x88diff(enumSquare sq1, enumSquare sq2) {
return sq2 - sq1 + (sq2|7) - (sq1|7) + 120;
}

enumDir direction(enumSquare sq1, enumSquare sq2) {
return arrDirectionBy0x88Diff[x88diff(sq1, sq2)];
}
</pre>
=See also=
* [[0x88#SquareRelations|0x88 Square Relations]]
* [[On an empty Board|Attacks on the otherwise empty Board]]
* [[Butterfly Boards]]
* [[Distance]]
* [[Flipping Mirroring and Rotating]]
* [[Intersection Squares]]
* [[Knight-Distance]]
* [[Manhattan-Distance]]
* [[Pieces versus Directions]]
* [[Vector Attacks]]

=Forum Posts=
* [http://www.talkchess.com/forum/viewtopic.php?t=48322 Extract direction (ray) informations from two squares] by [[Mathieu Pagé]], [[CCC]], June 18, 2013 » [[Rays]], [[Square Attacked By]]

=External Links=
* [https://en.wikipedia.org/wiki/Direction_%28geometry%29 Direction from Wikipedia]
* [https://en.wikipedia.org/wiki/Relative_direction Relative direction from Wikipedia]
* [https://en.wikipedia.org/wiki/Windward_and_leeward Windward and leeward from Wikipedia]
* [https://en.wikipedia.org/wiki/Starboard Starboard from Wikipedia]
* [https://en.wikipedia.org/wiki/Port_%28nautical%29 Port (nautical) from Wikipedia]
* [http://www.gisnet.com/notebook/comprose.php Origins of the Compass Rose] by [http://www.gisnet.com/gisnet/thoen/Thoen_CV.htm Bill Thoen]
* [https://en.wikipedia.org/wiki/Boxing_the_compass Boxing the compass from Wikipedia]
* [[Videos#WeatherReport|Weather Report]] - [http://rutracker.org/forum/viewtopic.php?t=4514776 Directions], [https://web.archive.org/web/20060303055049/http://www.uni-duisburg.de/AVMZ/frohne/discos/hamburg.htm 73rd NDR-Jazzworkshop], [https://en.wikipedia.org/wiki/Internationale_Funkausstellung_Berlin IFA] [https://en.wikipedia.org/wiki/West_Berlin Berlin], September 03, 1971, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: [[Videos#JoeZawinul|Joe Zawinul]], [[Videos#WayneShorter|Wayne Shorter]], [[Videos#MiroslavVitous|Miroslav Vitouš]], [[Videos#AlphonseMouzon|Alphonse Mouzon]], [[Videos#DomUmRomao|Dom Um Romão]], & guests [https://en.wikipedia.org/wiki/John_Surman John Surman], [https://en.wikipedia.org/wiki/Eje_Thelin Eje Thelin], [[Videos#AlanSkidmore|Alan Skidmore]]
: {{#evu:https://www.youtube.com/watch?v=-giDd22If9k|alignment=left|valignment=top}}

=References=
<references />

'''[[Squares|Up one Level]]'''

Navigation menu