This file is indexed.

/usr/share/carmetal/docs/info.txt is in carmetal 3.5.2+dfsg-1.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   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
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
// Help file syntax
// This is the help file for C.a.R., used inside the program
// for context sensitive help, and also to extract HTML
// pages using the Translator program contained in C.a.R.
// Refer to the Wiki for more information.

.index
.related start online license gui
C.a.R.

//image images/ZuL-Logo.png

C.a.R. contains a __context§sensitive§help__ than can be called while
using the program. it provides help on the currently active tool. You
are reading web pages extracted from this help. On these web pages,
you will also find a list of __keywords__ and a list of help topics.
Moreover, there is a search function both in the web and in the help
system of the program. 

For more information about C.a.R., have a look at the applications,
demos, tutorials, or the Flash introduction. There is also a
discussion forum on Yahoo, and a Wiki on C.a.R. There is even a
multilingual magazine CarZine about C.a.R. Searching the Web will
reveal many other sources of information about this program.

Much success with C.a.R. wishes you the author

Rene Grothmann

.start
.related online license gui tips localize language
Context sensitive Help

//image images/Help.jpg

//image- images/info.png
This __help__ system provides tips about the current tool, or about
your last action. E.g., to get help about the macro tool, choose the
macro tool and press the __Info-button__ to learn more about it. You
can close the window with the same button, or just leave it open.
Place the window beside the C.a.R. window to be able to see both. The
window will remember its position and size.

In the upper part of this help window, you see a drop down list with
related __topics__.

You can also search for __keywords__, or any other word in the file.
Searching for "macro" will also find "Macro", and words containing
"macro". The search results are presented in the drop down list. The
first of the found topics will be opened, if there was a match.

Best wishes for your work with C.a.R.!

René Grothmann

.online
.related start tips license
Online Help

You find the __homepage__ of C.a.R. via "www.z-u-l.de". You are
welcome to look for new versions there, or to browse through the
examples and demos. If you installed the documentation, you will find
a link on your computer, and C.a.R. may open the documentation with
the menu link. Otherwise, C.a.R. opens the documentaiton on my web
page. You can also configure the browser command in the help menu.

I opened two discussion groups about C.a.R. on Yahoo groups. One is in
German and the other in English. You find the English discussion
version via the support link on the homepage of C.a.R. There is also
a Wiki for C.a.R., where you can participate at the development of
the program.

Of course, you can reach me by __email__. You find my email address on
my homepage via the C.a.R. homepage "http//www.z-u-l.de".

.license
.related online start
__License__ for C.a.R.

C.a.R. is __free§software__ under the GPL (Gnu General Public
License), and you are welcome to use the program as you like. If you
distribute it, you must include at least a link to my pages. 

You may also download the sources via the homepage of C.a.R. However,
these sources and all changes you or others do must remain open. You
are enforced to provide the sources and all changes along with the
program. Moreover, you must provide a link to the original sources.
Make sure this part of the documentation is passed along with your
distributed files.

The same license also applies to the documentation.

If you want to make money with this program, you can do that by
providing additional services like books, instructions, tutorials and
such. You can also include the program into a commercial distribution
of software, e.g., in a __Linux__ distribution. I kindly ask to get a
notice, if you that, and a sample if possible, please.

.gui
.related iconbar macrobar mouse zoom online keyboard
User Interface

//images image/Gui.jpg

The larger area you see is the main window of C.a.R. It displays the
construction. The view can be moved with the __arrow§keys__, and
enlarged with __+/-__. Alternatively, there is a tool to __zoom__ and
drag the construction with the mouse. Or it is possible to zoom with
the __mouse§wheel__, and to drag with the __right§mouse§button__ on
some empty position.

Above the construction you find the __icon§bar__. The icons show
__tool§tips__, if the mouse remains over them for more than two
seconds. The icon display may also be concentrated into a single bar.
In a two line icon bar, the lower bar contains the construction tools.
The upper bar contains default settings, and settings for the
display.

The iconbar can include a __macro&bar__.

Below the construction, there is a __status§line__, which displays
important text information. In the __non-visual§mode__, this line is
replaced by an input line.

On the left side of the construction display, there may be an optional
__list§of§objects__. It can be configured to display categories of
objects only. Click on the display with the __right§mouse§button__ to
see further options for this list. A double click on a line with
an object, will edit this object. To edit several objects, select
the objects with the __Ctrl-key__ or __Shift-key__ as usual.

The objekt list can be sized by clicking on the small gap on the right
of the scrollbar and dragging the mouse left or right, then releasing
it at the intended position of the bar.

The menu contains many other commands and options, like loading and
saving of files. It also displays the __keyboard§shortcuts__ for the
tools.

-> See: Object List, Mouse, Iconbar, Keyboard

.iconbar
.related restricted gui settings
Iconbar

To select an icon of the __icon§bar__, left click on it. To learn more
about an icon, hold the mouse over it for a while. A small window will
appear with some text explaining the tool (__tool§tip__).

There are different types of tools.

Icons expecting mouse input: Examples are the point or segment tools,
the macro parameter selection or the zooming.

Icons to change default settings: Examples are the default color or
the point type.

Icons changing the look: Examples are the grid icon or the icon to
show hidden elements.

Icons that do an action: Examples are the editing of the comment or
deleting the last object.

//image images/Configure.jpg

To __configure§the§icon§bar__, start the dialog with the corresponding
menu entry. You can select and deselect any icon. Moreover, you can
choose to display the tools in a single row. Then the icon bar will
only show the most urgent tools. Deselected tools can still be used in
the normal mode using the keyboard or the menu.

The icon bar can be set to appear under the construction (see the
__special§settings__).

.restricted beginner
.related iconbar
Restricted Iconbar

There is a restricted form of the icon bar, which is saved with the
construction. The user will see this __restricted§icon§bar__, when the
construction is loaded.

Select the restricted icon bar in the options menu. Then you may edit
this icon bar. Remove all unnecessary tools, or all tools that could
confuse the user of your construction.

Disable the restricted icon bar or load a new construction, to get
back your full icon bar.

Moreover, there is a special __icon§bar§for§beginners__. Some tools
that could be confusing are missing here. Beginners should start in
this mode.

.mouse
.related gui settings hide point circle move keyboard edit
The Mouse

The __left§mouse§button__ creates construction objects according to
the current active tool. 

Many tools expect that the user chooses more than one object. In this
case, the first point is highlighted in red, while the tool is
waiting for the second point. 

Objects under the mouse will be highlighted in yellow, if they could
be used in the current construction step. This makes it easier to
select the proper objects. 

//image images/Select.jpg

If the choice of the object is not uniquely determined, the program
will display a list of possible objects. Select an object from this
list by double clicking on it, or by selecting it and pressing the OK
button, or with the keyboard. Points will be black, lines red, angles
(and other objects) green, and circles blue. The selection dialog can
be disabled in the __special§settings__. The program will then select
the closest of the objects automatically.

An important feature is, that __points__ will be automatically
created, if the program expects the user to select a point, and the
user clicks on free space. Moreover, __intersections__ will be
created, if the user clicks on an intersection. Also, points will be
bound to lines, circles and other line objects if the user clicks on
that object.

If the __Shift-key__ is pressed, when a circle, a segment or an angle
is constructed, the program will assume that the object is to be fixed
and will display the object dialog. In this dialog, the user can enter
a value to fix the object, or simply close the dialog and use the
current value.

The __right§mouse§button__ moves points, labels of objects, and it
opens the settings dialog for objects  (this is a quick alternative to
the __move__ tool). If a label is right-clicked but not moved, it
jumps to its default position. If the Shift-key is down, when the
label is selected, the label can be moved to any place in the
construction. Otherwise, it is fixed near the object.

With the __Ctrl-key__ plus the __right§mouse§button__, one can edit
the conditions for object properties.

With the __Ctrl-key__ and the __Shift-key__ plus the right mouse
button, an object can be hidden. Circles and lines will first become
partial, then hidden.

.background
.related gui move htmlexport
Background Pictures

C.a.R. can display a picture behind the current construction. This
picture can be a construction state or a picture loaded from a file.

//image images/Background.jpg

A picture from a file can be tiled, centered or stretched to fit the
construction window. There is a special switch to resize the program
window to the size of the loaded picture, when it is loaded.

If the picture fits the window size exactly, a link will be saved
along with the HTML export. The applet size will be the picture size
in this case. The picture must be published in the applet directory.

.properties
.related edit conditions colors hide mouse transparent point fixedangle replay animatebreak expressionsyntax latex
Object Properties

//image images/PointDialog.jpg

Open the __properties__ dialog of an object with a right click, or
with the edit tool. Most settings are common to all objects.

 - name
 - description
 - unit
 - color
 - thickness
 - hiding state
 - show name
 - show value
 - large of fat font
 - background state
 - transparent state
 - breakpoint

Names can contain almost all characters. If they contain "~", the
display will only show the part before the tilde, allowing the same
displayed name for more than one object. The name must be unique.
DEscriptions are generated automatically, but can be changed. If they
are changed, the user can revert to the automatic description by
entering an empty line.

Objects can use another name (an __alias__) for display than the
internal name. This is useful, if the display contains LaTeX code
enclosed in $...$. The alias may contain expressions in %...% which
are evaluated at run time. Strings of the form %=s% will return the
current name of object "s", and strings of the form %~s% will return
the equation of s.

Some objects have a size and units. Changing the size works only for
fixed objects. Units can be any text after the size. For angles, use
the degree symbol.

The thickness works differently for different objects. The
white thickness makes the object invisible, but not its label. Objects
can be hidden or completely hidden. In the latter case, they can only
be accessed through the construction description. 

Name and value display can be combined as in "s=2". If the name ends
with an underscore as in "P_", the "_" will be deleted and there will
be no "=".

//image- images/filled.png
Some objects have a filled state, like circles and angles. Moreover,
transparency can be switched on and off for these objects. Normally,
only filled objects are in the background, but other objects can be
set into the background too. Note, that using
__conditional§formatting__ a specific order of the objects in the
background can be achieved.

//image- images/animatebreak.png
Breakpoints are important for __replay__ and for the animation of 
breakpoints. Breakpoints can either be set in the replay dialog, or in
the properties dialog of the object.

Also, have a look at the buttons on the lower side of the properties
dialog. E.g., points have a special button to choose an object to
bind to (__bound§points__), __fixed§angles__ and __fixed§circles__
have a special button to set the __size__. The dialog will close and
the user has to select the objects or sizes from the construction.

.latex
.related properties text
LaTeX Code

C.a.R. uses HotEqn to display equations in __LaTeX__ form. To use
LaTeX code, enclose the text in $...$ signs. LaTeX code can be used in
lines of text objects, expression labels or for names of objects. It
is useful to use a specific display name (an __alias__) like $P_1$ in
this case. 

HotEqn cannot display all LaTeX code, but quite a lot. First of all
the Greek letters are supported (\alpha, \beta, ...), as well as many
specific LaTeX symbols (\nabla). Also supported is \percent and
\dollar, which is not in the normal LaTeX. Of course subscripts (x_n)
and superscripts (x^2) are supported and fractions (\frac{1}{x} or
\dfrac). The big operators, like integration and summation are
supported (\int_a^b), as well as limits and suprema (\lim_{x \to
\infty}).

Moreover, big brackets are useful, like (\left[ and \right]). Arrays
are also supported (\begin{array}{cc}2&3\\3&4\end{array}). The
binomial fraction is expressed with choose, and there is also atop ({2
\atop 3}).

For more information, refer to the HTML documentation.

.transparent
.related colors reorder properties
Transparency

Transparent objects are possible, if Java 1.2 or better is used. On
older Java systems, objects will never appear transparent.
Moreover, neither __EPS__ nor __PDF__ export does not support
__transparency__.

Filled objects are drawn at first to get in the background. This can
be switched on and off in the settings dialog of all objects. Then the
object will be drawn in the order of construction.

Transparency can be switched off for individual objects in their
__properties__ dialog.

.point
.related boundedpoint intersection settings mouse properties selfreference
Points

//image- images/point.png
A point can be generated by various tools. The point tool will
normally generate a __free§point__. If the __Shift-key__ is
pressed, the point can be fixed with an expression in the point
properties dialog. A point will fix to the position of another point,
if this point is shift clicked with the point tool.

If an intersection of two circles or similar objects is clicked, the
intersection is automatically created. A __confirmation__ for this
automatism to generate __intersections__ is turned off by default.
Also by default, a __preview__ of the intersected objects and the
intersection is shown. Of course, intersection points are not free,
but depend on the two intersected objects.

Points can be bound to circles and lines and other objects like
tracks, conic sections and functions (__bound§points__). To generate
such a point, click on the object with the point tool. A
__confirmation__ for this can be turned on.

Fixed points can still be moved, if the expression refers to the point
itself and to no other object (__selfreference__). Here,
__@-references__ do not count. In this case, the position is
recomputed using the expression. This is useful to restrict the
movement of points.

Points can be kept on a __grid__ by using a grid increment in the
dialog, which is larger then 0. For an integer grid, use 1.
Alternatively, there are more advanced methods of self referring
objects to keep the point on certain sets. Note that points can easily
be kept in __polygons__, since they can be bound to these objects.

Like other objects, free points can be dragged immediately after
generation. During the drag, the size and name will display, unless
this option is turned off.

-> See: Self Reference, Intersections, Points on Objects

.boundedpoint
.related point line mouse properties
Points on Objects

These are points, which are bound to a line, a circle, automatic
tracks, polygons, function graphs or parametric curves
(__bound§points__). They will move in a continuous way, if the
containing object is moved. A point can be __release__d, and bound to
a new object at any time using its __properties__ dialog.

Points can be bound on the perimeter of objects, or on the __inside__
of objects, if the object is a circle, an angle or a polygon. To
create a point inside an object, simply create an object on its
boundary, and edit the properties of the object, switching the
"inside" flag on. Alternatively, use the "bind to" button in the
dialog of any free point and press the __ctrl-key__ when selecting the
object.

Bounded points are either created with the point tool by clicking on a
line or a similar object, or by a special tool. Moreover, any point
can be bound to an object later on using its __properties__ dialog.
Exit the dialog with the button to bind the point, and then select the
object.

Points can be bound in two ways. Either the point is projected every
time the object moves, or the point is kept in its relative position
on the object. The __relative§fix__ can be removed or set in the
object editor. The relative fix is the default.

Bound points are not free. If however, a segment lies with both
endpoints on a line, and one of them is a bound point (to the line),
the segment can be fixed.

.line ray
.related point parallel properties segment
Lines and Rays

Lines can be __lines__ through two points, __parallels__ or
__perpendiculars__, or the ray of a __fixed§angle__. Rays are
parts of lines on one side of the first point through the second
point.

The differences between lines and rays is not only restricted to the
visual appearance of these objects. Intersections and
perpendicular lines behave differently for these objects. I.e.,
__intersections__ with rays become invalid, if the intersection point
is not on the ray. Perpendicular lines to ray will be invalid, if the
intersection with the line is not on the segment. It is possible to
change this behavior in the __properties__ dialog of the
perpendicular.

-> See: Segments

.segment fixedsegment
.related expressionsyntax point parallel properties line
Segments

__Segments__ are parts of lines between two points. Note that by
default __intersections__ with segments are valid only, if the
intersection lies between the endpoints.

The length of a segment can be fixed, if it has one free endpoint
(__fixed§segment__). To generate such a segment, hold the shift key
while selecting the second point, or use the special icon (in this
case, the second point will always be created as a free point), or fix
the segment in its __properties__ dialog.

//image images/SegmentDialog.jpg

Segments can be displayed as arrows.

-> See: Lines and Rays

.circle circle3
.related properties point transparent fixedcircle
Circles

//image- images/circle.png
There are three types of circles. Circles around a point M and through
a point A, circles around a point M with radius AB, and fixed circles.
Each type has an own tool. The first kind expects two points, the
second three, and the last only one.

Drawing a circle can be restricted between two defining points,
yielding circular arcs. In this case, it is possible to keep the arc
less than 180 degrees (i.e., always the shorter arc will be drawn
connecting the ends of the arc). You select the end points using a
button in the property dialogs of the circle.

Circles can be filled. Arcs can be filled in two ways, either as a
chord section of a circle, or as a pie.

Circles can be restricted to their necessary parts. These partial
circles are only drawn in little arcs through all points related to
them.

-> See: Fixed Circles

.fixedcircle
.related circle reorder expressionsyntax properties point transparent
Fixed Circles

//image- images/fixedcircle.png
Fixed circles have no radius point. To generate such a circle, hold
the shift key when defining the radius point, or use the special tool
for this. This will open the settings dialog, where you can enter any
expression for the radius. If the circle is dragged immediately after
the generation, the settings dialog will not open, but the current
size will be used.

Fixed circles can be sized to the distance of two points using any
expression. Instead of writing the expression in the
__properties__dialog, the value can be taken from the construction.
Either use another expression, or two points, or another circle. for
this, use the button "Set size ..." in the settings dialog.

//image images/CircleDialog.jpg

The size of fixed circles can be dragged with the mouse, if the fixed
state is released in the __properties__ dialog. If the fixed state is
set and the center of the circle is free, the center will be dragged
instead.

.intersection
.related point properties segment selectintersection
Intersections

//image- images/intersection.png
__Intersections__ can either be created by the point tool, clicking on
an intersection point, or with a special intersection tool. The
intersection tool is hidden by default, since the point tool can be
used instead in most cases.

The program can compute intersections between lines, circles, function
graphs, parametric curves and automatic tracks. In paper constructions,
intersections might not be thought of as an extra step to do. But the
computer won't compute all possible intersections. Also it makes the
necessary steps much clearer, if the user has to construct
intersections explicitly. 

It is possible to create intersection between __conic§sections__,
__tracks__, and __functions__ too. Note, that these intersections may
need some time to compute. Creating very many intersections of the
complicated kind will slow down your construction. Moreover, only one
of the intersection points is computed and updated in a continuous
way. The user can drag the intersection to other intersection points.

-> See: Selecting Intersections

.selectintersection
.related intersection point
Selecting Intersections

Circles intersect in two points. The program creates both
__intersections__ at once, if the two circles are selected as
parameters of the intersection tool. If you need only one, hide the
other. For automatically created intersections, the other intersection
will not be generated.

//image images/Intersections.jpg

There is a subtle problem with the way the program selects the two
intersections of circles (or a circle and a line). In contrast to
other programs, this is done in a predictable way. For circles, the
order will change, if the circles are switched. The intersections
between a line and a circle depend on the direction of the line (i.e.
the order of its creating points). Try moving the line so that it does
no longer intersect the circle, then move it back. The 
intersection will be the same.

Sometimes the intersection must be specified. This can be done by
telling one of the intersection points to be __different§from__ a
certain other point. The intersections will then be selected such that
the chosen intersection is furthest away from the other point. The
dialog for intersections contains a special field to specify the other
point, or a button to select the point interactively. 

Note that this type is intersection is created automatically, if the
other intersection point is a point on the perimeter of both circles,
and if this point is visible. 

You an also specify that the intersection should be the one that is
__close§to__ a given point.

Selections with circles can be set to switch automatically whenever
they become invalid. As with automatic tracks, the construction
will then run through all states.

.parallel plumb midpoint
.related line point properties
Parallel and Perpendicular Lines, Midpoints

//image- images/parallel.png
These are simply shortcuts for classical constructions. The first
two tools create lines. The midpoint is a point, of course. These
tools could be replaced by standard circle and ruler constructions, or
by macros.

Perpendicular lines to segments become invalid, if the intersection
is not within the segment. You can switch that off in the properties
dialog.

.move
.related circle angle background mouse
Move Objects

//image- images/move.png
This tool moves points (an alternative to the right mouse button). It
can also drag the size fixed circles and angles, unless these objects
are fixed for dragging. To unfix those objects, hold down the
__Ctrl-key__ while moving.

If lines, circles, polygons, or conic sections are generated by free
points only, they can be dragged too.

When the move tool is selected or when it is reset with the Esc
key, all moveable objects blink in red. This helps to identify the
__free§points__. Moreover, free objects are also marked in the
__object§list__ by ">".

It is possible to move several points at once. To do this, hold down
the __Shift-key__ while selecting the points, and release it for the
last point.

When the shift key is hold during the movement, the movement will be
restricted, to the point where an intersection becomes invalid. For
applets, this behaviour can be made the default by the
"restrictedmove" applet parameter.

If the __ctrl§key__ is hold while moveing, the old construction will
be visible in the background during the movement.

.tracker
.related point animate background mouse objecttracker
Manual Point and Line Tracking

//image- images/tracker.png
This tool draws ___tracks__ of moving points or lines. For a point its
position is tracked, and for a line, a curve is generated with the
tracked lines as tangent lines (a __polar§set__).

//image images/Track.jpg

First one or more point or line to be tracked have to be selected. To
select more than one object to be tracked, hold down the __Shift-key__
when selecting objects. Then some point, slider or other moveable
object can be dragged with the left mouse button. This moves the
selected object and creates the track. 

The color of the track is the same as of the tracked objects, and
the track will remain visible until another construction tool is
selected, or the track tool is reset with the __Esc§key__.

Point and line tracks can be mixed. Line tracks can be produced
from lines, rays or segments.

To turn a track into a permanent construction object, you have to use
the automatic tracking tool.

-> See: Automatic Point and Line Tracking  

.objecttracker
.related tracker point animate
Automatic Point and Line Tracking

//image- images/objecttracker.png
This tool draws point and line __tracks__ (as the manual tracking
tool) by animating the movement of a single point along a line or
circle. First select one or more points or lines to be tracked. Hold
down the __Shift-key__, if more than one object should to be tracked.
Then select a point on a line or on a circle, a slider or an
expression, or a line or circe. In the latter case, you need to select
the point to move on this line or circle too. The point will be
moved, or the slider or expression be changed, creating the tracks of
the selected objects.

Should the first tracked object become invalid due to an invalid
intersection, the movement is automatically reversed. In case the
first track point becomes invalid because two circles no longer
intersect, the other intersection point will be chosen when the moving
point reverses its movement. Thus the construction runs through all
possible __states__.

The __animation§speed__ can be reduced or increased with the shift key
and the left or right __arrow§keys__. Repeated left mouse button
clicks cycle the animation through 3 modes: animation and track,
animation and hidden track, track with no animation. In the last mode
the moving point can be dragged with the left mouse button. Other
points can be dragged with the right mouse button at any time, but
while this is done, the track will be hidden and any animation
paused.

If a construction file is saved with this tool as active tool, it will
become active when the file is loaded.   

To stop the animation and clear the tracks, select any tool., or press
Esc.

__Permanent§Tracks__

To make the first track a permanent construction object, press shift
and enter, or select the automatic track tool with the control key. A
new object will be created using the currently selected color and
weight properties. The track can be edited in the same way as any
other object. It is possible to create __intersections__ between the
track and other objects, and to put points on the track.

Tracks saved this way are calculated at every change in the figure,
which may slow down the program on older computers. It is therefore
wise to limit the number of tracks, and to restrict their lengths to
reduce the calculation load. Moreover, it is possible to turn the
calculation of a track off or on by using the fixed checkbox in
its __properties__ dialogue.  

-> See Manual Point and Line Tracking

.animate
.related circle line
Animation

//image- images/animate.png
This will animate a single point, moving along one or several
segments or circles. To start the animation, select a point, then a
sequence of segments or circles. Finish by selecting the last point
with a double click.

To stop the __animation__, click on the construction. To reverse the
animation shift click. shift and right or left __arrow§keys__ changes
the speed of the animation.

Animations are saved to the construction file. In applets, the
animation will prevent user interaction completely.

To go back and forth on line segments or on arcs, __shift§click__ into
the construction. This will also reverse the direction in circles.

.angle
.related circle properties fixedangle
Angles

//image- images/angle.png
Normal Angles are decoration and cannot be used to construct anything.
The exception is that it is possible to __bind__ points into the angle
area. The order of input for such angles is A, B, C, where B is the
corner point.

Angles can be displayed in three different sizes. The largest size
will display a circular arc, which starts in A.

Angles can have Greek letters in their name. To achieve an alpha,
enter \a, \A etc. You can use all Unicode letters with \0XXXX, where
XXXX is any hexadecimal digit. Angles, which are 90° or have a name
starting with "." will be labeled with a dot, if the size display is
switched on. Angles may be filled. It is probably better to use an
__alias__ for angles to achieve this.

By default, angles are never larger than __180§degrees__. The order of
A and C does not matter. However, this can be switched off in the
properties dialog of the angle.

As with other objects, the invisible thickness shows the label, but
not the angle.

-> See: Fixed Angles

.fixedangle
.related circle reorder expressionsyntax properties angle
Fixed angles

//image- images/fixedangle.png
Fixed angles have no third point, but a fixed size. This type of angle
behaves more like a ray than like an angle. It is possible to
intersect with the ray or place points on it.

__Fixed§angles__ are generated by holding down the __Shift-key__,
while clicking for the third point, or with the special tool for fixed
angles. This will open the settings dialog, where the user can enter
any expression for the size of the angle. If the angle is dragged
immediately, the settings dialog will not open.

Fixed angles can be sized using three given points, or any other
expression or angle. To do this select the button "set size ..." in
the settings dialog. Then e.g., select three points A, B, C, where B
is the corner point. The angle will be the same size as the angle ABC.
You can also use any other expression or angle to size the angle.

Fixed angles can be __inverted__. Thus one does not have to use
positive orientation. Furthermore, if a fixed angle is restricted to
180° (which is the default), and if such an angle is constructed in a
mathematical negative way, it will be inverted. There is an icon in
the settings dialog, which controls the inversion.

-> See: Angles

.area
.related point properties background
Filled Polygons

//image- images/area.png
This tool generates filled __polygons__ with given corners. Select
the corners of the area, and __double§click__ the last point. The
sides are hidden, when the polygon has thin thickness in the
properties dialog.

The value of the filled polygon is its area. The sign of the value
depends on the orientation of the corners.

.expression
.related angle circle properties reorder expressionsyntax
Expressions

You can use arithmetic expression in C.a.R. to

 - set coordinates of points, 
 - lengths of segments, 
 - radii of circles,
 - and sizes of angles. 

//image- images/expression.png
Furthermore, you can display values of expressions in constructions.
Use the expression tool to place expressions on the screen (and the
right mouse button to move them). You need to enter a valid expression
into the dialog. Expressions may have an explaining text, and may or
may not display their computed value. They are moved like any other
object with the right mouse button. The explain text may contain
__LaTeX__ code.

Hidden expressions are useful to compute values, and use these values
later in the construction.

The value of an expression can be set with a __slider__. The user will
then be able to set the expression by moving the dot to the right or
left. A slider has a minimal and a maximal value it can reach.

-> See: Syntax for Expressions

.expressionsyntax
.related fixedangle fixedcircle point properties reorder function
Syntax for Expressions

Name 
 Example 
 DEscription 
 
+, -, *, /,^ or ** 
 3.5*3+3/(4-5^2) 
 Elementary math. 
 
Name of object 
 AB/CD 
 The name of a segment, circle, angle and other expression. The object
must not depend on the current object. To refer to objects
by name there is the syntax @name or @"name". This will not work in
macros, however. If the object is not found, an error will occur.
 
Function
 sin(a) 
 The functions abs, sign, sin, cos, tan, arcsin, arccos, arctan, sqrt,
exp, log, round, ceil, floor, deg, rad, sinhyp, coshyp, angle180 and angle360. Note
that the trigonometric functions work with degrees. To convert, use
deg(x), or the functions rsin, rcos, rtan, rarcsin, rarccos, rarctan.
 
User __Functions__
 f(a)
 Evaluation of a user defined function object at a. 

__Pi __
 pi 
 The constant Pi. 
 
__x__,__y__,__z__ 
 x(P), y(P) , z(P)
 x- and y-coordinates of a point, or the z-value of the point.
 
__d__
 d(P,Q) 
 Distance of two points. 
 
__d__ 
 d(x) 
 Computes changes of the expression x. If x is a point, it computes
movements.
 
__sum__
 sum(x,f)
 Sums up x. If f is negative or invalid, the sum is reset to 0.
 
__a__
 a(P,Q,Z) 
 Size of angle PQZ. 

__scale__
 scale(x,a,b) 
 The relative position of x in [a,b), if x is in that interval. Else
the expression becomes invalid. 

__if __
 if(e,e1,e2)
 Returns e1, if e is valid, else e2. 

__invalid__
 invalid Returns an invalid expression. 

&&,||,! ! 
 (x<4 && y<4) 
 Logical expressions. 1 is true, 0 is false. 

<, >, <=, >=, ==, ~= 
 x<y 
 Comparing numbers. ~= means "circa equal". 

__integrate__
 integrate(f,a,b)
 integrate(f)
 Integrates the function f from a to b using the Romberg method. f
must be a function object (probably hidden). The y-part of f is
used. If f shows points only, the Riemann sum is computed. If f
is parametric, the area inside the curve is approximated or
its length, if it is not filled.

__zero__
 zero(f,a,b)
 Find a zero of the function f in the interval a,b. The sign of f
in a and b must be different. The procedure uses the secant method
or interval bisection.

__diff__
 diff(f,a)
 Numerically differentiate f at a. This is the usual approximation
(f(h)-f(-h))/(2h)

__min__,__max__
 min(f,a,b)
 Computes the point of the minimum (maximum) of f between a and b.
min(a,b) and max(a,b) compute the minimum or maximum of a and b.

__this__
 x(this)
 Refers to the object containing the expression.
 
__windoww__,__windowh__,__windowcx__,__windowcy__
 Returns the dimensions and center coordinates of the current screen.
 
__pixel__
 Returns the pixel per coordinate unit. Not to be used in print.
 
__simulate__
 simulate(e,x,f)
 Sets the expression e to to the value x, recomputes the construction with
this new value and returns the value of f. Only one simulation can be
computed at any time, so simulations can not be nested. An expression,
a fixed angle or a fixed circle can be used for e.

__inside__
 inside(P,A)
 Tests, if the point P is inside the object A. Returns 1/2, if it is
on the boundary if A. A can be a polygon, a circle or an angle.

.text
.related replay comment properties latex
Text

//image- images/text.png
This displays a multiline __text__ in the construction. The text can
be changed using an internal editor. This editor contains a button to
reach the normal dialog for object __properties__. 

To create a __bold__ or __large__ line, or both, precede the line with
*, **, or ***. To use __LaTeX__ commands, enclose the line or parts of
it in $...$ signs. Moreover, expressions can be used enclosed in %..%.
These expressions will be evaluated, and the text will display the
result. Strings of the form %=s% will return the current name of
object "s", and strings of the form %~s% will return the equation of
s.

__Hidden§texts__ appear in replay mode. This allows to show local
comments of constructions steps that disappear later.

.quadric
.related properties point transparent
Conic sections

//image- images/quadric.png
__Conic§sections__ are sets of solutions of equations formed by linear
combinations of x^2, y^2, x, y, xy and 1 (quadratic functions in two
variables). It is well know, that conics are determined by 5 points.
Simply select the 5 points to create a conic section.

To edit the __properties__ of the curve, click on it and use the
normal properties dialog. Conics will display the defining formula as
their value.

It is possible to __bind__ points on conic sections, and to create
__intersections__ of conic sections with other objects.

.hide
.related construction properties mouse
Hiding Objects

//image- images/hide.png
This will __hide__ objects, or make hidden objects __visible__. To
make a hidden object visible, you will of course need to enable the
icon to show all hidden objects. Hiding objects can also be achieved
by holding the __Ctrl-key__ and clicking on the object with the right
mouse button. In this case, circles and lines go to the partial state
first, and hide at the second click.

If the __Shift-key__ is held, when an object is selected for hiding,
the object will be completely hidden. In this case, one can make the
object visible again only by using the __object§list__.

With a special menu item it is possible to hide all
__duplicate&objects__. Only the most recent objects will be visible.
Altgernatively, press the __Ctrl-key__ while selecting the hide tool.

.rename
.related properties
Rename alphabetically

//image- images/rename.png
This tool __rename__s lines to a,b,c, points to A,B,C and angles to
\a,\b,\c with mouse clicks using this tool. The first unused letter
will be used.

Force A, B, C by pressing the shift key when you click on a point.
Letters will then be switched, if they were already in the
construction. To start over, press Escape.

By the way, if you need the letter "a" for two different objects, use
"a~1" and "a~2". Names show only up to "~". Alternatively, use an
__alias__.

.delete undo back
.related construction
Deleting Objects

//image- images/back.png
This tool deletes the most recently constructed object, and all hidden
objects before it. Alternatively, use the __backspace§key__.

//image- images/delete.png
There is another tool that deletes any object and all objects depending
on it. Of course, doing so may have unwanted side effects, especially,
if objects use complicated dependencies.

//image- images/undo.png
Undo restores all recently deleted objects.

.function
.related expressionsyntax properties
Functions and Curves

//image- images/function.png
The program can display __functions__ and parametric __curves__ in
the construction, or use __user&defined&functions__ of one or more
parameters in other expressions. 

First, we describe the type of functions for display in the
construction window. In the dialog, enter the start and stop
value of the parameter variable and the step size. If you wish, you
can use any string not containing blanks as a parameter name. The
default is "x".

//image images/Function.jpg

For a function, leave the X-value empty or set it to "x", and enter
an expression dependong on "x" for the Y-value. For a parametric
curve, one needs two expressions, one for the X-value and one for the
Y-value.

The program will increment the parameter variable from start to end
using the given step size. If the function is valid between two
parameter steps, a line segment is drawn in the construction
using the construction coordinates.

This type of functions can be used in other functions. The Y-value
will be evaluated then.

Functions and curves can be filled. For a parametric curve, the center is
0, but can be changed. To do that use the __properties__ dialog and
press the "Select Center" button. Functions can be reduced to a
sequence of points. If a function is filled additionally, a Riemann
step function will be drawn.

Display functions or curves can intersect with other objects, and
points can be fixed on the function graph. Geometrically these
functions behave like a curve.

User defined functions of several variables cannot be plotted. Their
purpose is to be used in other expressions. Consequently, there is a
much simpler dialog for these functions, which can be called by
holding the __ctrl-key__ while pressing the function icon. One has to
declare all variables, separated by blanks, in this dialog. The
variables may then be used in the expression. There is only one
expression, of course. The function will display its definition,
unless it is hidden, of course. The display can be moved as usual.

.defaults
.related line angle colors
Default settings

You can set the __defaults__ for color and appearance and some other
properties of new objects.

 - color of objects
 - thickness of objects
 - style of points
 - partial circles
 - partial lines
 - segments as arrows
 - show name
 - show value
 - use long names
 - large and bold font
 - angles larger than 180 degrees
 - non-transparent objects

These default settings are available in the menu and as tool bar
icons.

.edit
.related mouse properties conditions
Edit Objects

//image- images/edit.png
This tool edits the properties of one or more objects. To select
several objects, hold the __Shift-key___. The edit dialog for more
than one objects has fields in an invalid state. Only the changed
fields will be used to update the objects.

If the __Ctrl-key__ is pressed when the tool is selected, the last
object will be edited.

-> See: Conditional formatting

.conditions
.related edit properties
Conditional Formatting

If the __Ctrl-key__ is pressed, when an object is selected with the
right mouse button, an editor for the __conditional§formating__ of
objects opens. The dialog is also accessible from the normal
__properties__ dialog by holding the __Ctrl-key__ for OK, or with a
separate button, if this option is enabled in the
__special§settings__.

//image images/Conditions.jpg

For colors, thickness and other properties, it is possible to define
conditions to activate these properties. This is useful for special
effects. Each property can have a condition and it will be enabled
when this condition evaluates to true, which is any value other then
0.

A special condition is the z-buffer value. It determines the order
of painting. The objects with the largest z-buffer are painted first.
All objects that have a z-buffer value are painted after the background
objects, but before any other objects.

One can set the properties of several objects at once. The current
object can be referred to by the name "this".

.show
.related hide
Hide by Color

//image- images/showcolor.png
Show or hide objects with specific colors. This is used to make the
construction clearer.

.grid
.related zoom move mouse
Grid

//image- images/grid.png
This tool toggles the display of the coordinate system, the coordinate
system with axes, and no coordinate system. There is a dialog to set
the __color__ and __thickness__ of the coordinate system, and the
__font__ of the labels.

If the grid is on, new points and points moved by the right mouse
button __snap__ to grid points. However, it is possible to snap with
the move tool and the __left§mouse§button__ instead, changing an
__special§setting__. This may be useful for constructions on Web pages
with grids.

If the grid is on while the construction is saved, it will be switched
on, when the construction is loaded. The grid settings are also saved
in the construction file.

.replay
.related htmlexport text animatebreak
Walk through constructions

//image- images/replay.png
This tool opens a small dialog with navigation buttons containing
buttons for forward, back, fast forward, fast rewind etc. Additionally,
__breakpoints__ can be set with this tool. There is a button to jump
to the next breakpoint. Moreover, breakpoints are important for HTML
export in replay style.

//image images/Replay.jpg

To set a __hiding§breakpoint__ hold the shift key while setting the
breakpoint. Hiding breakpoints hide all previous objects up to the
next previous breakpoint. The construction will be split into several
parts.

Breakpoints and hiding breakpoints can also be set in the properties
dialog.

During the replay, hidden texts will be visible.

.animatebreak
.related replay
Animate breakpoints

This tool automatically goes from breakpoint to breakpoint. To increase
or decrease the speed, press __Shift-key__ plus the right or left
__arrow&keys__.

.draw
.related mouse
Paint with the Mouse

//image- images/draw.png
This tool paints sketches above the current construction with the
mouse in the current __color__. To erase the sketch, press __Esc§key__
or use the menu entry. The sketch will be saved with the
construction.

.zoom
.related mouse grid
Zoom with the mouse

//image- images/zoom.png
With this tool it is poosible to zoom in and out by dragging in the
outer region of the construction, and to move the construction by
dragging the inner region of the construction.

Note that it is possible to zoom the construction at any time with a
__mouse§wheel__, and to move the construction with the
__right§mouse§button__, dragging some empty spot.

One can also zoom with the __+/-§keys__, and move with the
__arrow§keys__.

The current viewing window is saved in the construction file, and the
same view will be used when the construction is loaded.

.parameter
.related runmacro parametertypes target macro
Macro Parameters

//image- images/macro.png
__Macros__ are an important tool for more complicated constructions.
Without macros, only more or less simple constructions can be done.
Macros collect many constructions steps into one construction step.
They behave like subroutines in a programming language. Macros are
like new, user defined tools.

A macro needs parameter objects and target objects, just like the
segment tool takes two points as __parameters__ and has a segment as
its __target__.

Macros in Z.u.L. are easily defined. Show the macro, which part of
your construction it should learn. This part is called the "pattern
construction". To create the pattern, construct some targets starting
with some given parameter objects. E.g., you could construct the
middle perpendicular line of a segment between two points, starting
with the two points.

//image- images/macro1.png
In the first step of macro creation, the macro needs to learn your
starting points. In the next step, you press the macro tool once more
and define the targets. In the final step, the macro dialog appears
and the macro definition is finished.

Continue with: Targets

.target
.related parameter runmacro parametertypes macro
Targets

//image- images/macro2.png
After the macro parameters have been selected, another click on the
macro tool starts the selection of the __targets__. Here, only those
objects are __visible__ that are constructible from the parameters.
E.g., the middle perpendicular of two points is visible, if the two
points have been selected as parameters. All intermediate construction
steps are visible too unless they are hidden.

Select the targets now. In the example mentíoned above, select the
middle perpendicular line.

At least one target object should always be defined. Otherwise, all
visible objects will be constructed by the macro. Moreover, targets
will get the default __color__ and styles when the macro is used. All
other objects get the style in the definition pattern, with the
exception that black objects get the default color. Especially, all
__hidden__ objects will be constructed in the hidden state. However,
there is an option to hide all objects that are no targets
automatically, even if they were visible in the construction.
Moreover, if the macro is used in the descriptive mode, the user can
assign names only to target objects.

Another click on the macro tool finished the definition of the macro
using a dialog. 

Continue with: Macro Definition

.macro
.related runmacro parametertypes parameter target expression fixedcircle fixedangle hintparameters selfreference defaultmacros macroerror
Macro Definition

//image images/DefineMacro.jpg

After all __parameters__ and __targets__ have been selected, another
click on the macro tool defines the macro using a dialog. 

Here, the name of the macro and a __comment__ can be set. It is
possible to definie the user __prompts__ for each parameter. Comments
and user prompts are important, since the user might not know, what
the macro does and what it needs. The prompts are displayed in the
status line, while the macro waits for parameters.

It is possible to __fix§a§parameter__ to an object A by using "=A" for
the parameter prompt. The parameter will not be prompted, but instead
an object "A" will be used, if there is one, and if it has the correct
type.

Be default, macros hide all objects that are __duplicates__ from
existing objects. This behaviour can be changed here.

Moreover, it is possible to ask the user for a value for either a
fixed circle, a fixed angle or an expression while the macro is
running (__value§prompt__). To do this, enter the name of the circle,
the angle or the expression into the box in the last line. The user
will be prompted with a dialog and can enter any arithmetic
expression. Several comma separated objects can be prompted from the
user.

-> See also: Hint Parameters, Self reference

.macrobar
.related macro
The Macro Bar

On request, a line for macro icons can be used. In the program, select
this line with a menu option. Also select, if you want to see the
default icons in that line. In applets, include the parameter
"macrobar" into the "options" parameter.

Macros are only displayed, if the macro name ends with a text in
brackets. The program and the applet will try to load an icon with
that name from a subdirectory named "icons". If no icon is found, the
text will displayed. Icons should be 32x32 in PNG with transparent
background, and the aliasing should be optimized for light gray.

The program archive contains the following useful icons.

//image- icons/1.png
1 - Middle Perpendicular

//image- icons/2.png
2 - Orthogonal Projection

//image- icons/3.png
3 - Inscribed Circle

//image- icons/4.png
4 - Circumcircle

//image- icons/5.png
5 - Reflection at a Line

//image- icons/6.png
6 - Reflection at a Circle

//image- icons/7.png
7 - Reflection at a Point

//image- icons/8.png
8 - Angle Bisector

//image- icons/9.png
9 - Angle Bisector as Ray

//image- icons/10.png
10 - Rotation, given 5 points

//image- icons/11.png
11 - Rotation, given an angle and 2 points

//image- icons/12.png
12 - Translation

//image- icons/13.png
13 - Point

//image- icons/14.png
14 - Angle

//image- icons/15.png
15 - Polygon

//image- icons/16.png
16 - Vector

//image- icons/17.png
17 - Point on a Line

//image- icons/18.png
18 - Arc

//image- icons/19.png
19 - Circle

//image- icons/20.png
20 - Circle, given three points

//image- icons/21.png
21 - Fixed Angle

//image- icons/22.png
22 - Fixed Circle

//image- icons/23.png
23 - Fixed Segment

//image- icons/24.png
24 - Function

//image- icons/25.png
25 - Axes

//image- icons/26.png
26 - Intersection

//image- icons/27.png
27 - Line

//image- icons/28.png
28 - Midpoint, given 2 points

//image- icons/29.png
29 - Parallel

//image- icons/30.png
30 - Conic Section

//image- icons/31.png
31 - Ray

//image- icons/32.png
32 - Line Segment

//image- icons/33.png
33 - Perpendicular

.hintparameters
.related macro
Hint Parameters

A special feature __hide__s parameters. If a hidden point is chosen as
a macro parameter during the generation of the macro, and if that
point is associated to a point generated during the parameter
selection when the macro is used, this new point will be hidden after
the macro has been run. 

This feature makes it possible to use points as __hint§parameters__.
An example would be a macro, which generates an equilateral triangle
on a segment. The hint would be a third click indicating either side
of the segment. In this case, an expression must be used for one of
the 60 degree angles involving the third point, something like
"60*sign(180-a(P,A,B))".

.selectmacro
.related runmacro macro
The Macro Selection Dialog

//image images/MacroSelection.jpg

The macro selection dialog contains a list of all __macros__. Macros
may be organized in __macro§folders__. To switch to a folder, double
click on it. To revert to the parent directory, double click on "..".
To put the macro into a subfolder, rename it like
"subdir/macroname". __Default§macros__ are displayed in red.

If the dialog allows multiple selections, subdirectories can be selected.
In this case, all macros in all subdirectories of this subdirectory will
be selected at once.

.runmacro
.related parameter parametertypes mouse expressionsyntax fixparameters selectmacro
Running a Macro

//image- images/runmacro.png
If the __Shift-key__ is pressed when the macro run tool is selected,
the previously used macro will be selected automatically. If not,
and there is more than one macro, the macro selection dialog will
open. After the user has chosen a macro, the program will __prompt__
for each parameter, and the expected object type and the prompt will
be displayed in the __status§line__.

Macros can also be selected with the __right§mouse§button__. Choose
the macro from the list in the popup menu.

If "Space selects ..." appears in the status line, this parameter
object can be selected by pressing the __space§key__. This feature is
useful, if the macro is used several times.

At the end, the macro will be executed. If the macro needs a value for
a fixed circle or angle (__value§prompt__), it will prompt for this
value with a dialog box. The user can enter any arithmetic expression
here.

If the full __preview__ is turned on, the result of the macro
operation can be seen before the last parameter point is selected.

-> See: Macro Selection Dialog, Macro Definition

.defaultmacros
.related runmacro save
Default Macros

When starting, C.a.R. looks for a file named ".default.mcr" in the
current directory. If there is such a file, the macros contained in
this file are loaded as __default§macros__. Note, that there is a a
default macro file in the program archive, which is used, if the
program does not find another file.

The default macros are protected. They are not deleted when a new
file is loaded and they are not saved with constructions. To delete
protected macros, use the menu entry in the macro menu, and select all
macros. 

You can create default macros yourself. Simply save a file
".default.mcr" into the current directory. If you need a special
language version, save the file as ".la_default.mcr", where "la"
is your language shortcut, of simply overwrite ".default.mcr". the
language shortcut can be found in the "about" dialog (__languages__).

.macroerror
.related macro
Warning: "Object is used, but not in Macro"

This warning occurs if an object in the macro refers to an object not
contained in the macro. Usually, the reason is a __@...__ reference in
an expression, maybe in the conditional formatting of objects. Those
references do not make objects depend on the referred object, and thus
the objects are still constructable. However, they might not work as
expected, or might even refer to wrong objects when used.

Another type of references are the bounds of __arcs__. Since those
bounds depend on the circle most of the time, the circle arc cannot
depend on the bounds to avoid circular dependencies. If you ignore the
warning, the arc will be determined by objects with the same name.

A third reason may be the __intersections__ with circles. To choose the
intersection, the intersection may be kept __away§from__ a given
point. This might happen automatically, if the other intersection
already exists. If you ignore the warning, this intersection will be
kept away from a point with the same name, or will become an
unrestricted intersection.

To avoid the warning, add the missing object to the parameters, so that
it is included in the macro.

.localize
.related defaultmacros
Localized Help

C.a.R. already runs in many __languages__. However, if you want to
provide your own version, you should translate

 - ZirkelProperties.properties
 - info.txt

The __properties__ file needs to be translated into an internal
Unicode representation by a tool named "native2ascii". It is wise to
let me do that for you. Simply send me the file. I will also include
your translation into the current distribution.

The help file should be in your local __encoding__. But is is possible
to specify any encoding in the properties file.

.fixparameters
.related runmacro parameter
Fixed Parameters

You can also fix the selection of macro __parameters__ by pressing the
__Shift-key__ during the selection. This will create a copy of the
macro, which is fixed in these parameters. You cannot fix all
parameters of course.

A parameter can be fixed, while the macro is defined. To do that,
"=A" is used as the prompt of the parameter. The parameter
will then be fixed to the object with name "A".

.parametertypes
.related parameter
Types of Parameters

Macro should use __points__ as __parameters__. This makes dependencies
easier to understand and avoids many problems. But other types of
parameters are possible too.

Lines, rays, segments, and circles generate __secondary§parameters__,
namely the two end points, or the center respectively. This simplifies
macro usage. However, the user must take care to use these parameters
in the same configuration. Two concentric circles must be concentric.
If the segments AB and BC are macro parameters, then the user must
choose segments EF and FG. In these cases, it might be better to use
points as parameters.

Lines and rays are of two types: with two defining points, and with
one defining point (e.g., parallel lines). In the macro, lines, rays,
and segments are stored as pointless lines, if their defining points
are not used in the target construction, or if they have only one
defining point. The user can then choose any line as a parameter. If
one of the two defining points is used, the user will have to choose a
line, ray or segment of the same type. Again, this is complicated, and
it may be best to use points.

.htmlexport
.related runningdemo save comment exportdialog jobexport
HTML Export

C.a.R. can generate __HTML__ pages for your constructions. These HTML
pages contain an __applet__ that displays the construction. In the
dialog for HTML export the appearance of the page and the applet can
be set.

To set up a HTML page, a construction file has to be created, and,
for assignments with solution pages, another one for the solution.
One needs to publish

 - the HTML page just generated, 
 - a solution page, if present,
 - style sheets, if present, 
 - the applet archive zirkel.jar,
 - the construction file. 

Note that __tracks__ and __animations__ are saved with the
construction. They will automatically reload in constructions, which
are displayed in applets. In this case, there is no user interaction.
So you should use the plain or border style for these applets.

It is best to have only one applet on each HTML page.

-> See also: HTML Export dialg.

.htmlexporttemplate
.related htmlexport save comment settings
HTML Export with Templates

__Templates__ are a comfortable way to export your construction to
__HTML__. The program loads a template for the HTML page, and fills in
the necessary information replacing all placeholders on the template
page. The dialog is much shorter, since most information is
continained in the template file, including __applet__ size, applet
and page colors, style sheets and archive position.

The __documentation__ of C.a.R. contains some templates to start with.
Template files use the extension "*.template". You can edit these
template files with any file or HTML editor. Foreign language users
should disable __UTF-8__ in the settings dialog, or they must use an
editor, capable of handling UTF properly (e.g my text editor JE, the
HTML editors of Mozilla, or Frontpage by MS, and many others). You can
base your template on the template files that come with the
documentation.

The following placeholders are recognized in template files.

#title
  Replaced by the construction title as shown in the export dialog.

#comment1,#comment2,...
  This will be replaced by the section of the construction comment
with the corresponding number. Comment sections are separated by lines
consisting of "~". Each paragraph of the comment section will be
bracketed by <p>...</p>.

#comment
  Works like text, but does not look for comment sections.

#text1,#text2,...
  Works like #comment1,... but does not generate paragraphs
<p>...</p>. The user can provide any HTML-tags he likes.

#text
  Works like #text1,... but does not look for comment sections.

#parameter
  Inserts the applet parameters: file or job, style, tools and options.

#color
  Inserts the applet parameters for colors.

#font
  Inserts the applet parameter for fonts and digits.

#codebase
  The codebase from the export dialog.

Here is a very simple template file.

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
  <HTML>
  <HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
  <TITLE>
  #title
  </TITLE>
  </HEAD>
  <BODY BGCOLOR=#F0F0F0>
  <H1>
  #title
  </H1>
  <CENTER>
  <P>
  <APPLET CODE="rene.zirkel.ZirkelApplet.class" #codebase WIDTH="400" 
  HEIGHT="400" ALIGN="CENTER">
  <PARAM NAME="color" VALUE="240,240,240">
  #parameter
  </APPLET>
  </P>
  </CENTER>
  #comment
  </BODY>
  </HTML>

-> See also: Export Dialog

.exportdialog
.related htmlexport jobexport
Export Dialog

//image images/Export.jpg

Applets can have several styles.

- Plain: The __applet__ has no border. The user can only display
hidden elements and move points. One should use the same color for the
page and the applet in this case. 

- Border: The applet gets a border. 

- Border and Icons: The applet gets a border and icons. The user can
construct things. 

- Border, Icons and Status: The applet gets a status line. The status
text is displayed in the browser status line too. 

- Border, Icons and Input Line: The construction must be done in
descriptive (non-visual) mode. 

- Replay with Breakpoints: Three buttons are displayed to enable
navigation from breakpoint to breakpoint. To set the breakpoints, use
the replay tool. 

Title of Page: This is the title of your page in <H1> style.

CSS Style-Files: Cascading Style Sheets are useful to give several
pages a common appearance. If you do not use them, leave the input
empty. Use a path relative to the program archive.

Width, Height: The dimensions of the applet display.

Construction File: The name of the file containing the construction,
usually in the same directory as the HTML file. However, the file
names must be relative to the program archive. Absolute URLs and paths
are not allowed here.

Jar File: This is the program archive. The path must be relative to
the HTML page.

Colors: You can choose a color for the page background and for the
applet background. The color can be chosen with the button below.

Moreover, there are switches to save the defined colors for the
construction elements and for the construction background. The
background of the construction can be different from the background of
the applet and the background of the page.

Save Digits: Will save the settings for the number of digits. Should
be enabled.

Show Comment: This will put the __comment__ below the applet. All
browsers should be able to handle the default __UTF-8__ encoding. If
not switch to the Windows encoding in the special settings.

Tools: These two icon bars let you choose the __tools__, which should
be displayed to the user. In any case, one should provide the undo
tool. With the special icon for two lines the user gets two lines of
tools.

The user can only define macros, if you give him the macro tool. And
he can run only macros only, if this tool is available.

The icons with the question mark are switches for the object selection
dialog, the question for points on objects and for intersections.
By default, all these dialogs and questions are turned off in applets.

In the non-__visual§mode__, the icons help the user to find the
syntax. In this mode, all construction tools work.

.jobexport
.related htmlexport exportdialog
Export Assignments

The export dialog has some additional features for __assignments__.

Display as Assignment: Needs to be checked to save the
construction as an assignment.

Solution File - Jump - Save - Link: These settings allow the automatic
generation of a solution page, which is a separate page to display the
solution. After the user finishes the assignment, the browser can jump
directly to the solution page. One can also set a link to this page
below the construction.

Comment: Exports the assignment comment, of course. The construction
comment is only shown on the solution page.

.runningdemo
.related htmlexport online
Creating a running demo

It is possible to create an __applet__ to load a series of
constructions and display them to the user at a given rate
(__demo§show__). The applet syntax is quite different and there is no
automatic export.

An example of the applet code looks like this.

 <APPLET ARCHIVE="zirkel.jar" CODE="rene.zirkel.ZirkelApplet.class" 
       WIDTH="500" HEIGHT="565" ALIGN="center">
 <PARAM NAME="demo" VALUE="demo.xml">
 <PARAM NAME="color" VALUE="244,244,242">
 </APPLET>

The file "demo.xml" contains the file list. It is an XML file with a
straightforward syntax. Here is a sample.

 <?xml version="1.0" encoding="utf-8"?>
 <Demo delay="30">
 <File name="Uhr.zir" delay="20">Clockwork</File>
 <File name="Cindarella-Maschine.zir">Cindarella machine</File>
   ...
 </Demo>

The delay parameters are in seconds.

.visual
.related expressionsyntax runmacro
Descriptive Constructions

In this non-__visual§mode__, there is an input line below the
construction. The following differences apply.

 - Choosing a tool will only display an input pattern. 
 - The necessary construction parameters must be supplied by name. 
 - The name of the constructed object may be given left of an equality sign =.
 - The construction is carried out be pressing Return. 

There is a fixed __syntax__ for the input.

 name=function(parameter,...)
 name1,name2=function(parameter,...)

The second line applies to intersection and macros with several
targets.

If the name is missing, the new object will get the default name. 

Here is a short Description of the syntax. Note, that __expressions__
may be used in all places, where a value is expected. Empty brackets
can be omitted.

Syntax 
 Long 
 DEscription 
 
A=P() 
 point 
 Generates a point at random position. 
 
A=P(0,1) 
  A fixed point. 
 
a=s(B,C) 
 segment 
 A segment from B to C. 
 
a=s(B,2) 
  A segment of fixed length. 
 
a=g(B,C) 
 line 
 A line through B and C. 
 
a=r(B,C) 
 ray 
 A ray from B to C. 
 
k=k(A,B) 
 circle 
 A circle around A trough B. 
 
k=k(A,2) 
  A circle with fixed radius. 
 
k=k(A,B,C) 
  A circle around A with radius BC. 
 
A=S(g,g) 
 intersection 
 An intersection between two lines. 
 
A,B=S(k,k) 
 Both intersections between circles, or circles and lines. 
 
away(A,P) 
 away 
 Keeps the intersection A away from the point P. 
 
M=M(A,B) 
 middle 
 The midpoint of AB. 
 
g=pl(g,A) 
 parallel 
 The parallel through A to g. 
 
g=p(g,A) 
 plumb 
 The perpendicular through A to g. 
 
a=w(A,B,C) 
 angle 
 The angle A,B,C 
 
a=w(A,B,90) 
  An angle of fixed size. 
 
A=area(P1,P2,P3) 
 area 
 Creates an area with these corners. 

Q=quadric(P1,P2,P3,P4,P5)
 Creates a conic section through these points.

F=function(a,b,d,t,xt,yt)
 Creates a function on [a,b] with step size d, plotting xt,yt,
 which are expressions depending on the variable t.

value(P,0,1) 
 value 
 Fixes the coordinates of the point 
 
value(s,2) 
  Fixes the length of the segment. 
 
value(k,2) 
  Fixes the radius of a circle. 
 
value(w,90) 
  Fixes the size of an angle. 
 
value(true,o) 
  Sets the display of the value for o. 
 
value(o) 
  Sets the display of the value for o to on. 
 
value(true) 
  Sets the default display of values. 
 
name(o,p) 
 name 
 Sets the name of o to p. 
 
name(true,o) 
  Sets the display of the name for o. 
 
name(o) 
  Sets the display of the name for o to on. 
 
name(true) 
  Sets the default display of names. 
 
hide(true,o) 
 hide 
 Hides or un-hides o. 
 
hide(o) 
  Hides o. 
 
hide(true) 
  Sets the default hidden state for objects. 
 
col(green,o) 
 color 
 Sets the color of o to red, green, blue or brown. 
 
col(green) 
  Sets the default color. 
 
th(thick,o) 
 thickness 
 Sets the thickness of o to thick, normal or thin. 
 
th(thick) 
  Sets the default thickness 
 
type(square,P) 
 type 
 Sets the point type to square, circle, diamond or point. 
 
type(square) 
  Sets the default point type. 
 
part(k) 
part(true,k) 
 partial 
 Sets the object k to partial display or full display. 
 
part(true) 
  Sets the default partial state. 
 
fill(o) 
fill(true,o) 
 fill 
 Sets the object o to filled state or outline state. 
 
back(o) 
back(true,o) 
 background 
 Sets the object o to the background or not. 
 
window(0,0,5) 
 window 
 Sets the view window to width 2*5 and center (0,0). 

valid(o)
valid(true,o)
 Treat segments and rays as lines in intersections and in
 perpendicular lines. o is the intersection or the perpendicular.

obtuse(a)
obtuse(true,a)
 Set angles so that they can become greater then 180 degrees.

solid(a)
solid(true,a)
 Set the object to the nontransparent state.

restrict(c,A,B)
 Restrict a circle to become an arc from A to B.

valid(o)
valid(true,o)
 Remove the restrictions from perpendicular lines and intersection.
 These objects will be valid, even if the intersection is outside a
 segment or an arc.

rename(A,B)
 Rename the object A to B.
 
__Macros__ can be used too. Names left of = will be assigned to
targets. If there are several targets, the names must be separated by
commas. One additional parameter may be used to assign a value for an
object, which would be prompted in interactive mode.

.descritivefiles run
.related visual save
Descriptive constructions in files

__Descriptive§constructions__ can be loaded from a file. Alternatively
edit the description and then load the construction. 

The syntax is line oriented and uses the commands described above.
Line comments //... may be used. The files may contain __macros__ in
the following format.

 macro U 
 // Constructs a circle through three points
    parameter A=point // Select first point
    parameter B=point // Select second Point
    parameter C=point // Select third point
    g1=MS(A,B)
    g2=MS(A,C)
    U=intersection(g1,g2)
    target k=circle(U,A)
 end

The indents are optional. __Comments__ in the parameter lines are used
as prompts, if the macro is used interactively. This macro calls the
macro MS with two parameters.

 macro MS
  param A=point
  param B=point
  partial(true)
  k1=circle(A,B)
  k2=circle(B,A)
  partial(false)
  P1,P2=intersection(k1,k2)
  target g=line(P1,P2)
 end

If the command constructing the target constructs two objects, the
target can be defined separately.

 A,B=intersection(g,k)
 target B

If a macro has more than one target, all targets must be assigned.

 A,B=test(...)

Prompts are defined by the keyword prompt in front of an object name.

 k=circle(A,5)
 prompt k

Here is an example of a macro using a segment as a parameter.

 macro MS
 // Mittelsenkrechte
  A=point
  B=point
    parameter s=segment(A,B)
    ...
 end

If circles are used as a parameter, there is the special syntax

 M=point
 parameter circle(M)

This kind of circle can only be used in parameters.

The special command "showall" shows all intermediate objects.
Otherwise, only targets will be visible. The command "invisible"
superhides all objects that are no targets.

.assignments
.related save restricted colors comment
Assignments

Assignments (or jobs) are incompletely displayed constructions, which
the user is supposed to finish. The computer will only check for the
constructed target object, and the solution itself might be different
than the give one. The user will receive a message, as soon as he has
completed the construction. The target objects will be displayed in a
light color, unless they are hidden before the construction is saved.

Assignments are generated by choosing the last object to be displayed
to the user. Furthermore, there must be target objects. Targets are
not checked for the solution, if they are generated pressing the shift
key.

To test the assignment, click on the menu entry for this. In contrast
to the user, you will have the complete set of tools available,
however. You can use the restricted icon bar to save the assignment.

Area objects as targets should be defined by the least set of corner
points. If the solving user creates additional points on the sides of
the polygons those points will be skipped.

.browser
.related online
Starting the help browser

To start the __HTML__ help in the __browser__, you need to configure
it. Enter the command line to the browser in the dialog. If the path
contains blanks, include the browser in double quotes.

Moreover, add the path to the help index.html file. This should be
preconfigured already. If no help is found, the configuration dialog
will use the web page.

The default browser is the Explorer on Windows systems, and Netscape
elsewhere.

.comment
.related assignments parameter htmlexport
Comments

//image- images/comment.png
Every construction can have a comment. __Comments__ will be displayed
when the user loads the construction. Moreover, comments can be
exported to __HTML__.

Assignments may have a special comment, displayed to the user, when
the assignment is presented. This comment should explain what to do in
the assignment.

__Macros__ should have a comment too, explaining their usage
and purpose. The macro comment is displayed in the macro selection
dialog.

.fonts
.related zoom save sizes
Fonts

__Fonts__ can either be set globally or for each object. Global
settings take precedence. Fonts are scaled with the screen height.
However, there is a minimum for this scaling.

C.a.R. uses fonts in two sizes and strokes. Fonts and points are
scaled with the construction, however. For small windows or applets,
this would lead to very small fonts and points. Thus there is a
minimal point size. Bold fonts are recommended for small screen sizes
and high resolutions.

Note, that fonts for the __graphics§export__ can be scaled to an exact
size. The screen preview for the graphics export scales the fonts to
get the same visual appearance of the construction. This overrides the
global setting for the font size and the minimal font size.

.sizes
.related fonts
Sizes

In this dialog, one can set the minimal line, point and font sizes.
To keep the same look on all screen sizes, these items are
scaled with the screen height. But one can set __minimal§sizes__ here.

Moreover, one can set the arrow size, and the selection size for
cursor selection of objects.

Note that for graphics exports, one may set the these values exactly,
independent of the size of the output. This overrides any other
settings.

The minimal sizes can be exported to __applets__.

.save
.related assignments parameter visual print defaultmacros filedialog
Saving and loading files

Constructions are saved in __XML__-format to computer files. This
format is human readable. Normal constructions have the extension
".zir", and assignments have the extension ".job". Macros use ".mcr".

Constructions may contain __macros__. There is a switch, if the
currently defined macros (besides the __default§macros__) should be
saved along with the constructions or not. To avoid accumulating
macros from several constructions, it might be a good idea to delete
all macros before a new construction is loaded. There is a switch to
do this by default.

Files can be __compressed__ by adding "z" to their extension. There is
no need to do this, unless you want to minimize download time, when
the file comes from a server.

There are special menu items to load __assignments__, to load
__macros__, and to load __descriptive§constructions__ in files.

-> See: File Dialog

.filedialog
.related save settings
The File Dialog

C.a.R. implements an own __file§dialog__, since the file dialogs of
Windows and Linux have some defects when used from Java. If you want
to use the normal system file dialog, however, you can switch to it in
the __special§settings__.

//image images/FileDialog.jpg

The file dialog of C.a.R. uses a __history__ for files, directories
and filters. The directory and file history has a special drop down
choice menu, and the history of the file and pattern fields show when
the cursor up or down __arrow§keys__ are pressed in these fields.

Navigate in the directories with a __double§click__ on the directory
name in the left panel. The "Back" button opens previous directories.
To choose a file, you can double click on its name in the right panel,
or select it and use the action button.

It is possible to enter several __file§patterns__ separated by spaces.
File patterns can contain one or more place holders, "?" for single
letters and "*" for strings.

A new directory can be created. Enter the name of the directory into
the directory field, then press the button. Files or directories
cannot be deleted in this dialog.

The home button brings you to the __home§directory__ of C.a.R., if
installed in the home directory of the user. The English name is "CaR
Files". If there is no such directory, the button brings you to the
user home directory. In Windows, the English name is "My Documents".
In __Linux__, the home button brings you into your home directory. It
is possible to change the home directory by pressing the home button
with the __shift-Ctrl-key__. The current directory will become the new
home directory for C.a.R. Another click with these keys restores the
old settings.

.print
.related exportsettings print
Print and Export Constructions

There are several ways to __export§constructions__ to other
programs or view them externally. 

First of all, you can __print__ your constructions. There is an option
to print in __exact§scaling__, so that units of 1 are 1 cm exactly.
Make sure, the construction window fits on the paper for this option.

Moreover, you can export in various graphics and vector formats
(__graphics§export__). For word processors, I recommend using __PNG__,
properly scaled for the exact output width. There is not much sense in
using PDF or PS for print, since the line widths, the fonts and the
point sizes have to be scaled for the exact output size.

For PNG output, a dialog will open, where the output size is set.
Alternatively, use a factor relative to the screen size. It is also
possible to determine the size using the graphics width and height in
cm and the resolution in __dpi__. There is a drop down selection box
for various formats. If "1:1 scaled" is used, a scaled version (1 unit
= 1 cm) with a 300 dpi resolution is used. Make sure, the output fits
on your paper.

Since lines, fonts and points may become too small in small pictures,
it is possible to __scale__ these sizes in cm. Use the __preview__ to
see the effect on the screen.

For use with the typesetting program __LaTeX__, C.a.R. can generate
two accompanying files, the bounding box file, and a file to draw the
image. The latter has the same name as the PNG file, but an extension
"ztx" (zirkel tex). It is possible to let LaTeX do the drawing of the
strings and equations in the construction. In the dialog, select the
type of strings that should be done by LaTeX. The graphics export will
generate the necessary LaTeX commands. This type of LaTeX export will
work with pdflatex and latex. In the LaTeX source, it is necessary to
import the "__graphicx__" package, and to load the image file with an
input command, like in

 \begin{figure}
 \centering
 \input{image.ztx}
 \end{figure}

C.a.R. can also copy graphics to the __clipboard__. The same scaling
will apply as in the PNG output. If a screen dump of the construction
is needed, use "screen size" in the scaling dialog.

For __PDF__ output, only set the picture sizes in cm. PDF can also
scale lines, fonts and points. Of course, you will then have to set
the intended print width of the PDF output.

.construction
.related hide reorder
List of objects

//image images/Gui.jpg

C.a.R can display an __object§list__ of your construction with the
corresponding menu entry. By default, the list is turned on. This list
can be used to edit invisible objects. In fact, it is the only way to
access completely hidden construction steps. The lines in the list
have the same colors as the objects. Completely hidden objects are in
brackets.

Press the question mark or the right mouse button to access the popup
menu with more options.

To select objects click on them. To select or deselect more objects
click with the __Ctrl-key__. To select a range of objects use the
__Shift-key__.

It is possible to restrict the display to certain types of objects
with the drop down menu in the line above the object list. 

The view is either sorted in the order the objects were constructed,
or in the order the objects are stored. Note that the program may
change the order of the objects to make sure no object refers to
another object, which is defined later.

Objects can display the description, the value or the formula besides
the name of the object. Moreover, there are special display styles for
hidden objects, completely hidden objects, invalid objects and basic
(__moveable__) objects.

The object list can be copied to the __clipboard__.

.colors
.related htmlexport
Set colors

Set the various colors of C.a.R. to your liking. Colors will not be
saved with your construction, but are exported to HTML.

Colors are composed in the red, green and blue color model. Switch
back to default colors for best compatibility.

.settings
.related restricted iconbar tips beginner
Special Settings

This dialog contains some __special§settings__ for advanced users.
Some of these settings are affected by the beginner mode, however.

First of all, there is a switch for the display of object labels while
the object is moved. This option may be disturbing, but it is quite
useful in some cases. C.a.R. can restrict that to fixed objects only.

Then, there are switchs for some questions the program asks before
critical actions.

If the dialog to choose objects is disabled, the program will always
select the first object, even if the selection cannot be determined
uniquely from the mouse position.

It is also possible to turn off the construction preview, or restrict
it to points. By default, most tools show a preview of the result
before the last parameter point is selected. In the beginner mode, only
points are shown in preview, since other objects tend to mislead the
users.

The icon bar can be placed to the lower edge of the window, and
tooltips can be disabled.

Some users want to use the system __file§dialog__. I prefer mine, and
it does indeed have some advantages. However, it cannot delete or
rename files. It can create directories, however.

One should use __UTF-8__ encoding all the time, but C.a.R can also
choose to use the local encoding for construction files. This affects
comments and descriptions in the files. Use the local setting only, if
you want to edit the construction yourself, and if you do not have a
UTF-8 editor.

In the __smartboard__ mode, dragging will behave differently. A
smartboard cannot report mouse movements, so they are replaced by
drags. You have to click once more to complete the construction. This
is only important for the preview of construction steps.

By default, the program writes __backups__ of the files before
overwriting. If you find you do not need these, disable the backup
feature.

The user can choose to call the macro popup dialog with a single
or a __double§click__ of the right mouse button.

On a slow system, one may want to disable the smooth graphics with
__anti-aliasing__.

.exportsettings
.related settings print
Settings for Graphics Export

Normally, points and fonts are scaled. But the minimal sizes are 
respected, if this is enabled, since fonts would become to small
otherwise. To get large fonts in small prints, use the scaling feature
in the __graphics§export__.

Bitmaps are normally generated on a white __background__. You can tell
the program to use your background color.

.reorder
.related circle angle expressionsyntax
Reorder points

It is possible to change the __order__ of the construction manually.
There is a special tool for this, and if you select an object with
this tool, the program will try to move this object as far to the
start of the construction as possible. This may be useful to control
the sequence the objects are drawn.

However, reordering is obsolete now. C.a.R. reorders the cosntruction
chain itself, if objects refer to later objects. Moreover, it is
possible to control the sequence of drawing using
__conditional§formatting__.

.tips
.related online browser start move intersection expression reorder
Tips

In this help section, we give some tips to solve common problems.

Invalid Constructions. To test a construction, move one of the basic
points. If the construction does not remain valid, the most common
reason is that you did not choose an intersection properly. Instead,
you may have defined a line that goes through the intersection point
only by chance.

Wrong Intersection. If a construction becomes invalid, whenever the
order of the basic points is changed or if one point is flipped to
another side, you are facing the problem to choose the right
intersection point. So, if you want your construction to be valid for
all situations, make sure, you choose all intersections properly. If
the automatic selection of C.a.R. fails, you can select the
intersection by hand. Open its properties and press "Close to" or
"Away from". Then choose a point that should be nearer to or further
away from the intersection point. You can also set intersection close
to itself. In this case, the intersection will behave continously.

.keyboard
.related gui delete zoom mouse iconbar
Using the Keyboard

Most commands in C.a.R. have __keyboard§shortcuts__. Have a look into
the menu to find the shortcut for each command. Shortcuts depend on
the language.

Note, that you need to give your construction the keyboard focus if
it looses the focus. Click on an empty spot with the right mouse
button.

Useful shortcuts are the __backspace§key__ to delete the last action,
the __+/-__ key to zoom in and out, and the arrow keys to move the
construction. Moreover, __F1__ will open the context sensitive help.

The important __Esc§key__ resets the current tool.

Note that the __Ctrl-key__  and the __Shift-key__ change the behavior
of some tools.

The __Space§key__ is used by Java and Windows versions to press
buttons. Some systems use the __Return§key__ instead.

.image
.related background
Images

__Images__ can be added to the construction as objects. Images use
either two __anchor§point__s or three. In the first case, the image is
rotated and scaled, in the second case, an affine transformation is
used. If you want only two points, double click the second point.

These images must be in the same directory as the construction.

-> See also: Background Images

.language
Set Language

By default, C.a.R. starts with the language of the system it is running
on. It can be commanded to start in any other of the implemented
__languages__. Use the following shortcuts for the current languages:

 English - en
 German - de
 French - fr
 Netherlands - nl
 Italian - it
 Spanish - es
 Portuguese - pt
 Brazilian - br
 Slovenian - sl
 Danish - da
 Norway - no
 Poland - pl
 Russian - ru
 Korean - co

Either use the menu item to set the language or set the command line parameter
like "-l de" for the German language.

.selfreference
.related macro point
Self Reference

A point may contain references to itself to fix its coordinates, or to
set the appearance in the __conditional§formatting__. If a point
refers to itself only (__@-references__ do not count), it is called a
__self§referring__ object. It will then be moveable by the user.
First, the rest of construction will be updated, then the point.

This feature allows to give the point to a special behavior, when it
is moved. E.g., one could restrict the movements of the point this
way. Note, that this is only necessary in very special situations,
since points can __bind__ to the inside of angles, polygons and
circles, and of course to the boundary of many other objects.
Moreover, there is a __grid__ setting for points, which keeps it on an
integer grid. All these points are moveable, but fixed points.

Such moveable fixed points can also be created by __macros__. The
point must be a macro parameter, and this parameter must be selected
with the shift key, when the macro is created. When the macro runs,
the points chosen for the parameter gets the coordinate fixes.