-
Notifications
You must be signed in to change notification settings - Fork 0
/
doc.go
137 lines (137 loc) · 5.5 KB
/
doc.go
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
//Program Plot Text is used to plot math graphs in a textual rapresentation with monospaced fonts.
//
//Function
//
//PlotT operates with command-line flag, the most important is -fn,
//this defines the function to plot, the function is dependent on x,
//see github.com/gSpera/meval for the functions and the constants that can be used
//
// plott -fn="sin(x)"
// ┌────────────────────────────┐
// │ ▲ │
// │ │ │
// │ │ │
// │ │ │
// │ │ │
// │ │ │
// │ │ │
// │··· │ ···· │
// │ · │·· ·· │
// │────··────────·────────··──►│
// │ ·· ··│ · │
// │ ···· │ ··│
// │ │ │
// │ │ │
// │ │ │
// │ │ │
// │ │ │
// │ │ │
// └────────────────────────────┘
//
// Size
//
// By defaults plott outputs to a 80-column format(80x40), this can be changed width the -width and -height flags.
// The plot is based around the Origin(0; 0) and spans from (-5; 5)(top-left) to (5; -5)(bottom-right),
// this behaviour can be changed with the -min="(X; Y)"(top-left) and the -max="(X; Y)"(bottom-right) flags.
// The examples in this document are created(if not otherwise specified) in 30x20 runes.
//
// plott -fn="sin(x)" -min="(-3.14; 1.5)" -max="(3.14; -1.5)"
// ┌────────────────────────────┐
// │ ▲ │
// │ │ │
// │ │ ·· │
// │ │ ·· ·· │
// │ │ · · │
// │ │ · · │
// │ │ · ·│
// │ │ │
// │ │· │
// │──────────────·────────────►│
// │· ·│ │
// │ │ │
// │ · · │ │
// │ · · │ │
// │ · · │ │
// │ ·· ·· │ │
// │ ·· │ │
// │ │ │
// └────────────────────────────┘
//
// Unicode
//
// PlotT uses Unicode runes by default, if the output device doesn't support Unicode the -set=ascii flag may be used.
// other sets(and custom ones) may be avaible in future.
//
// plott -fn="x*x" -max="(5; -1)" -set=ascii
// +----------------------------+
// |..............^.............|
// |..............|.............|
// |........x.....|.....x.......|
// |..............|.............|
// |..............|.............|
// |..............|.............|
// |.........x....|....x........|
// |..............|.............|
// |..............|.............|
// |..............|.............|
// |..........x...|...x.........|
// |..............|.............|
// |...........x..|..x..........|
// |..............|.............|
// |............x.|.x...........|
// |.............x|x............|
// |--------------x------------>|
// |..............|.............|
// +----------------------------+
//
// Border
//
// The plot is surrounded by a border by default, this can be changed with the -border flag
//
// plott -fn="tan(x)" -set=ascii -border=false
// ...............^..............
// ...............|..............
// ...............|...x..........
// x..............|..............
// ...............|..............
// ...............|............x.
// .........x.....|..............
// ...............|..x...........
// ........x......|.x.........x..
// .......x.......|x.........x...
// -----xx--------x--------xx--->
// ....x.........x|.......x......
// ...x.........x.|......x.......
// ............x..|..............
// ...............|.....x........
// ..x............|..............
// ...............|..............
// ...............|..............
// ...........x...|..............
// ...............|..............
//
// Axis
//
// PlotT adds axis by default to the plot, this can be changed with the -axis flag
// plott -fn="1/5*x" -axis=false
// ┌────────────────────────────┐
// │ │
// │ │
// │ │
// │ │
// │ │
// │ │
// │ │
// │ ··│
// │ ········ │
// │ ······· │
// │ ········ │
// │··· │
// │ │
// │ │
// │ │
// │ │
// │ │
// │ │
// └────────────────────────────┘
package main