/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.
|