| ... | ... |
@@ -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); |