... | ... |
@@ -22,17 +22,11 @@ clamp(int val, int min, int max) |
22 | 22 |
return (val >= min) ? (val <= max) ? val : max : min; |
23 | 23 |
} |
24 | 24 |
|
25 |
-int |
|
26 |
-cinu(char c) |
|
27 |
-{ |
|
28 |
- return c >= '0' && c <= '9'; |
|
29 |
-} |
|
30 |
- |
|
31 | 25 |
int |
32 | 26 |
sint(char *s) |
33 | 27 |
{ |
34 | 28 |
int i = 0, num = 0; |
35 |
- while(s[i] && cinu(s[i])) |
|
29 |
+ while(s[i] && s[i] >= '0' && s[i] <= '9') |
|
36 | 30 |
num = num * 10 + (s[i++] - '0'); |
37 | 31 |
return num; |
38 | 32 |
} |
... | ... |
@@ -41,17 +35,17 @@ int |
41 | 35 |
main(int argc, char *argv[]) |
42 | 36 |
{ |
43 | 37 |
int seg, offset, i; |
44 |
- double segf; |
|
38 |
+ double segf, cx = 128, cy = 128, r; |
|
45 | 39 |
if(argc < 2) { |
46 |
- printf("usage: circle128 length\n", argc); |
|
40 |
+ printf("usage: circle128 length [radius]\n", argc); |
|
47 | 41 |
return 1; |
48 | 42 |
} |
49 | 43 |
seg = sint(argv[1]); |
50 | 44 |
segf = (double)seg; |
51 | 45 |
offset = seg / 4; |
52 |
- printf("%d points on a circle128:\n\n", seg); |
|
46 |
+ r = argc < 3 ? 128 : (double)sint(argv[2]); |
|
47 |
+ printf("%d points on a circle%d:\n\n", seg, (int)r); |
|
53 | 48 |
for(i = 0; i < seg; ++i) { |
54 |
- double cx = 128, cy = 128, r = 128; |
|
55 | 49 |
double pos = (i - offset) % seg; |
56 | 50 |
double deg = (pos / segf) * 360.0; |
57 | 51 |
double rad = deg * (PI / 180); |