home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 75 6e 69 78 0a 46 72 |.sources|.unix.Fr|
|00000020| 6f 6d 3a 20 62 6f 62 70 | 40 68 61 6c 2e 63 6f 6d |om: bobp|@hal.com|
|00000030| 20 28 42 6f 62 20 50 65 | 6e 64 65 6c 74 6f 6e 29 | (Bob Pe|ndelton)|
|00000040| 0a 53 75 62 6a 65 63 74 | 3a 20 76 32 36 69 30 34 |.Subject|: v26i04|
|00000050| 38 3a 20 6c 69 6e 65 33 | 64 20 2d 20 33 44 20 42 |8: line3|d - 3D B|
|00000060| 72 65 73 65 6e 68 61 6d | 27 73 20 28 61 20 33 44 |resenham|'s (a 3D|
|00000070| 20 6c 69 6e 65 20 64 72 | 61 77 69 6e 67 20 61 6c | line dr|awing al|
|00000080| 67 6f 72 69 74 68 6d 29 | 0a 53 65 6e 64 65 72 3a |gorithm)|.Sender:|
|00000090| 20 75 6e 69 78 2d 73 6f | 75 72 63 65 73 2d 6d 6f | unix-so|urces-mo|
|000000a0| 64 65 72 61 74 6f 72 40 | 70 61 2e 64 65 63 2e 63 |derator@|pa.dec.c|
|000000b0| 6f 6d 0a 41 70 70 72 6f | 76 65 64 3a 20 76 69 78 |om.Appro|ved: vix|
|000000c0| 69 65 40 70 61 2e 64 65 | 63 2e 63 6f 6d 0a 0a 53 |ie@pa.de|c.com..S|
|000000d0| 75 62 6d 69 74 74 65 64 | 2d 42 79 3a 20 62 6f 62 |ubmitted|-By: bob|
|000000e0| 70 40 68 61 6c 2e 63 6f | 6d 20 28 42 6f 62 20 50 |p@hal.co|m (Bob P|
|000000f0| 65 6e 64 65 6c 74 6f 6e | 29 0a 50 6f 73 74 69 6e |endelton|).Postin|
|00000100| 67 2d 4e 75 6d 62 65 72 | 3a 20 56 6f 6c 75 6d 65 |g-Number|: Volume|
|00000110| 20 32 36 2c 20 49 73 73 | 75 65 20 34 38 0a 41 72 | 26, Iss|ue 48.Ar|
|00000120| 63 68 69 76 65 2d 4e 61 | 6d 65 3a 20 6c 69 6e 65 |chive-Na|me: line|
|00000130| 33 64 0a 0a 5b 20 46 6f | 72 20 74 68 65 20 6d 61 |3d..[ Fo|r the ma|
|00000140| 74 68 65 6d 61 74 69 63 | 61 6c 6c 79 20 63 68 61 |thematic|ally cha|
|00000150| 6c 6c 65 6e 67 65 64 20 | 28 6d 65 61 6e 69 6e 67 |llenged |(meaning|
|00000160| 20 6d 65 2c 20 75 6e 74 | 69 6c 20 49 20 6c 6f 6f | me, unt|il I loo|
|00000170| 6b 65 64 20 69 74 20 75 | 70 29 2c 0a 20 20 42 72 |ked it u|p),. Br|
|00000180| 65 73 65 6e 68 61 6d 27 | 73 20 61 6c 67 6f 72 69 |esenham'|s algori|
|00000190| 74 68 6d 20 69 73 20 61 | 20 6e 65 61 74 6f 20 61 |thm is a| neato a|
|000001a0| 6e 64 20 65 66 66 69 63 | 69 65 6e 74 20 77 61 79 |nd effic|ient way|
|000001b0| 20 74 6f 20 65 6e 75 6d | 65 72 61 74 65 20 61 6c | to enum|erate al|
|000001c0| 6c 20 6f 66 0a 20 20 28 | 61 63 74 75 61 6c 6c 79 |l of. (|actually|
|000001d0| 20 22 6d 6f 73 74 20 6f | 66 22 29 20 74 68 65 20 | "most o|f") the |
|000001e0| 70 6f 69 6e 74 73 20 62 | 65 74 77 65 65 6e 20 74 |points b|etween t|
|000001f0| 77 6f 20 65 6e 64 70 6f | 69 6e 74 73 2e 20 20 4d |wo endpo|ints. M|
|00000200| 6f 73 74 20 73 75 63 68 | 0a 20 20 61 6c 67 6f 72 |ost such|. algor|
|00000210| 79 74 68 6d 73 20 74 61 | 6b 65 20 61 73 20 61 6e |ythms ta|ke as an|
|00000220| 20 69 6e 70 75 74 20 70 | 61 72 61 6d 65 74 65 72 | input p|arameter|
|00000230| 20 74 68 65 20 72 65 73 | 6f 6c 75 74 69 6f 6e 20 | the res|olution |
|00000240| 77 61 6e 74 65 64 20 2d | 2d 20 73 69 6e 63 65 0a |wanted -|- since.|
|00000250| 20 20 69 74 20 77 6f 75 | 6c 64 20 62 65 20 61 20 | it wou|ld be a |
|00000260| 77 61 73 74 65 20 74 6f | 20 63 61 6c 63 75 6c 61 |waste to| calcula|
|00000270| 74 65 20 61 74 20 61 20 | 68 69 67 68 65 72 20 72 |te at a |higher r|
|00000280| 65 73 6f 6c 75 74 69 6f | 6e 20 74 68 61 6e 20 79 |esolutio|n than y|
|00000290| 6f 75 20 75 73 65 0a 20 | 20 28 79 6f 75 27 64 20 |ou use. | (you'd |
|000002a0| 6a 75 73 74 20 68 61 76 | 65 20 61 20 6c 6f 74 20 |just hav|e a lot |
|000002b0| 6f 66 20 70 6f 69 6e 74 | 73 20 74 68 61 74 20 77 |of point|s that w|
|000002c0| 6f 75 6c 64 20 22 67 6f | 20 69 6e 20 74 68 65 20 |ould "go| in the |
|000002d0| 73 61 6d 65 20 70 6c 61 | 63 65 22 29 2e 0a 20 20 |same pla|ce").. |
|000002e0| 54 68 69 73 20 61 6c 67 | 6f 72 79 74 68 6d 20 75 |This alg|orythm u|
|000002f0| 73 65 73 20 6f 6e 6c 79 | 20 69 6e 74 65 67 65 72 |ses only| integer|
|00000300| 20 61 72 69 74 68 6d 65 | 74 69 63 20 61 6e 64 20 | arithme|tic and |
|00000310| 61 73 73 75 6d 65 73 20 | 74 68 61 74 20 79 6f 75 |assumes |that you|
|00000320| 20 77 61 6e 74 0a 20 20 | 61 6c 6c 20 74 68 65 20 | want. |all the |
|00000330| 63 6f 6e 74 69 67 75 6f | 75 73 20 70 6f 69 6e 74 |contiguo|us point|
|00000340| 73 20 77 68 69 63 68 20 | 63 61 6e 20 62 65 20 72 |s which |can be r|
|00000350| 65 70 72 65 73 65 6e 74 | 65 64 20 77 69 74 68 20 |epresent|ed with |
|00000360| 69 6e 74 65 67 65 72 73 | 2e 20 20 0a 0a 20 20 49 |integers|. .. I|
|00000370| 20 65 78 70 65 63 74 20 | 74 68 61 74 20 74 68 65 | expect |that the|
|00000380| 72 65 27 73 20 73 6f 6d | 65 74 68 69 6e 67 20 6c |re's som|ething l|
|00000390| 69 6b 65 20 74 68 69 73 | 20 69 6e 20 74 68 65 20 |ike this| in the |
|000003a0| 58 31 31 20 50 68 69 67 | 73 20 63 6f 64 65 2e 20 |X11 Phig|s code. |
|000003b0| 20 42 75 74 0a 20 20 73 | 69 6e 63 65 20 74 68 69 | But. s|ince thi|
|000003c0| 73 20 73 75 62 6d 69 73 | 73 69 6f 6e 20 69 73 20 |s submis|sion is |
|000003d0| 73 68 6f 72 74 20 61 6e | 64 20 63 6c 65 61 6e 20 |short an|d clean |
|000003e0| 61 6e 64 20 72 65 6c 61 | 74 69 76 65 6c 79 20 65 |and rela|tively e|
|000003f0| 61 73 79 20 74 6f 20 75 | 6e 64 65 72 2d 0a 20 20 |asy to u|nder-. |
|00000400| 73 74 61 6e 64 2c 20 49 | 20 74 68 69 6e 6b 20 69 |stand, I| think i|
|00000410| 74 27 73 20 75 73 65 66 | 75 6c 20 61 6e 64 20 61 |t's usef|ul and a|
|00000420| 6d 20 74 68 65 72 65 66 | 6f 72 65 20 70 6f 73 74 |m theref|ore post|
|00000430| 69 6e 67 20 69 74 2e 20 | 20 4e 6f 74 65 20 74 68 |ing it. | Note th|
|00000440| 61 74 20 69 74 0a 20 20 | 68 61 73 20 6e 6f 20 6d |at it. |has no m|
|00000450| 61 6e 20 70 61 67 65 20 | 6f 72 20 52 45 41 44 4d |an page |or READM|
|00000460| 45 20 6f 72 20 4d 61 6b | 65 66 69 6c 65 2c 20 61 |E or Mak|efile, a|
|00000470| 6e 64 20 69 6e 20 74 68 | 65 20 61 76 65 72 61 67 |nd in th|e averag|
|00000480| 65 20 63 61 73 65 20 49 | 20 77 6f 75 6c 64 0a 20 |e case I| would. |
|00000490| 20 72 65 6a 65 63 74 20 | 61 20 73 75 62 6d 69 73 | reject |a submis|
|000004a0| 73 69 6f 6e 20 61 62 73 | 65 6e 74 20 6f 66 20 61 |sion abs|ent of a|
|000004b0| 6e 79 20 6f 66 20 74 68 | 6f 73 65 20 74 68 72 65 |ny of th|ose thre|
|000004c0| 65 2e 20 20 49 66 20 49 | 20 67 65 74 20 61 20 66 |e. If I| get a f|
|000004d0| 6c 6f 6f 64 20 6f 66 0a | 20 20 73 6d 61 6c 6c 20 |lood of.| small |
|000004e0| 43 20 66 75 6e 63 74 69 | 6f 6e 73 20 69 6e 20 72 |C functi|ons in r|
|000004f0| 65 73 70 6f 6e 73 65 20 | 74 6f 20 74 68 69 73 20 |esponse |to this |
|00000500| 73 75 62 6d 69 73 73 69 | 6f 6e 2c 20 49 27 6c 6c |submissi|on, I'll|
|00000510| 20 68 61 76 65 20 74 6f | 20 6d 61 6b 65 20 75 70 | have to| make up|
|00000520| 0a 20 20 73 6f 6d 65 20 | 72 75 6c 65 73 20 61 62 |. some |rules ab|
|00000530| 6f 75 74 20 77 68 61 74 | 20 74 68 65 79 20 68 61 |out what| they ha|
|00000540| 76 65 20 74 6f 20 69 6e | 63 6c 75 64 65 2e 20 20 |ve to in|clude. |
|00000550| 48 65 63 6b 2c 20 70 65 | 72 68 61 70 73 20 49 27 |Heck, pe|rhaps I'|
|00000560| 6c 6c 20 73 74 61 72 74 | 0a 20 20 61 20 6c 69 62 |ll start|. a lib|
|00000570| 72 61 72 79 20 61 6e 64 | 20 70 6f 73 74 20 75 70 |rary and| post up|
|00000580| 64 61 74 65 73 20 74 6f | 20 69 74 2e 20 20 28 54 |dates to| it. (T|
|00000590| 68 61 74 27 73 20 6e 6f | 74 20 61 20 70 72 6f 6d |hat's no|t a prom|
|000005a0| 69 73 65 21 29 20 0a 0a | 20 20 2d 2d 76 69 78 20 |ise!) ..| --vix |
|000005b0| 5d 0a 0a 54 68 69 73 20 | 69 73 20 73 6f 6d 65 74 |]..This |is somet|
|000005c0| 68 69 6e 67 20 49 27 76 | 65 20 68 6f 70 65 64 20 |hing I'v|e hoped |
|000005d0| 74 6f 20 73 65 65 20 6f | 6e 20 74 68 65 20 6e 65 |to see o|n the ne|
|000005e0| 74 20 66 6f 72 20 79 65 | 61 72 73 2e 20 41 6e 64 |t for ye|ars. And|
|000005f0| 20 49 20 63 61 6e 27 74 | 0a 67 75 65 73 73 20 68 | I can't|.guess h|
|00000600| 6f 77 20 6d 61 6e 79 20 | 74 69 6d 65 73 20 49 27 |ow many |times I'|
|00000610| 76 65 20 73 65 65 6e 20 | 72 65 71 75 65 73 74 73 |ve seen |requests|
|00000620| 20 66 6f 72 20 73 6f 6d | 65 74 68 69 6e 67 20 6c | for som|ething l|
|00000630| 69 6b 65 20 74 68 69 73 | 2e 20 49 74 0a 74 75 72 |ike this|. It.tur|
|00000640| 6e 65 64 20 6f 75 74 20 | 74 6f 20 62 65 20 74 72 |ned out |to be tr|
|00000650| 69 76 69 61 6c 20 74 6f | 20 62 75 69 6c 64 2c 20 |ivial to| build, |
|00000660| 6f 6e 63 65 20 49 20 73 | 70 65 6e 74 20 61 20 63 |once I s|pent a c|
|00000670| 6f 75 70 6c 65 20 6f 66 | 20 77 65 65 6b 73 20 6f |ouple of| weeks o|
|00000680| 66 0a 6d 79 20 73 70 61 | 72 65 20 74 69 6d 65 20 |f.my spa|re time |
|00000690| 72 65 73 65 61 72 63 68 | 69 6e 67 20 69 74 2e 2e |research|ing it..|
|000006a0| 2e 20 28 49 20 64 6f 6e | 27 74 20 68 61 76 65 20 |. (I don|'t have |
|000006b0| 61 20 6c 6f 74 20 6f 66 | 20 73 70 61 72 65 20 74 |a lot of| spare t|
|000006c0| 69 6d 65 2e 20 3a 2d 29 | 0a 53 6f 20 68 65 72 65 |ime. :-)|.So here|
|000006d0| 20 69 74 20 69 73 2c 20 | 61 20 73 69 6d 70 6c 65 | it is, |a simple|
|000006e0| 2c 20 66 61 73 74 2c 20 | 33 44 20 76 65 72 73 69 |, fast, |3D versi|
|000006f0| 6f 6e 20 6f 66 20 42 72 | 65 73 65 6e 68 61 6d 27 |on of Br|esenham'|
|00000700| 73 20 6c 69 6e 65 20 64 | 72 61 77 69 6e 67 0a 61 |s line d|rawing.a|
|00000710| 6c 67 6f 72 69 74 68 6d | 2e 0a 0a 2d 2d 2d 2d 2d |lgorithm|...-----|
|00000720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000760| 2d 2d 2d 2d 0a 23 21 20 | 2f 62 69 6e 2f 73 68 0a |----.#! |/bin/sh.|
|00000770| 23 20 54 68 69 73 20 69 | 73 20 61 20 73 68 65 6c |# This i|s a shel|
|00000780| 6c 20 61 72 63 68 69 76 | 65 2e 20 20 52 65 6d 6f |l archiv|e. Remo|
|00000790| 76 65 20 61 6e 79 74 68 | 69 6e 67 20 62 65 66 6f |ve anyth|ing befo|
|000007a0| 72 65 20 74 68 69 73 20 | 6c 69 6e 65 2c 20 74 68 |re this |line, th|
|000007b0| 65 6e 20 75 6e 70 61 63 | 6b 0a 23 20 69 74 20 62 |en unpac|k.# it b|
|000007c0| 79 20 73 61 76 69 6e 67 | 20 69 74 20 69 6e 74 6f |y saving| it into|
|000007d0| 20 61 20 66 69 6c 65 20 | 61 6e 64 20 74 79 70 69 | a file |and typi|
|000007e0| 6e 67 20 22 73 68 20 66 | 69 6c 65 22 2e 20 20 54 |ng "sh f|ile". T|
|000007f0| 6f 20 6f 76 65 72 77 72 | 69 74 65 20 65 78 69 73 |o overwr|ite exis|
|00000800| 74 69 6e 67 0a 23 20 66 | 69 6c 65 73 2c 20 74 79 |ting.# f|iles, ty|
|00000810| 70 65 20 22 73 68 20 66 | 69 6c 65 20 2d 63 22 2e |pe "sh f|ile -c".|
|00000820| 20 20 59 6f 75 20 63 61 | 6e 20 61 6c 73 6f 20 66 | You ca|n also f|
|00000830| 65 65 64 20 74 68 69 73 | 20 61 73 20 73 74 61 6e |eed this| as stan|
|00000840| 64 61 72 64 20 69 6e 70 | 75 74 20 76 69 61 0a 23 |dard inp|ut via.#|
|00000850| 20 75 6e 73 68 61 72 2c | 20 6f 72 20 62 79 20 74 | unshar,| or by t|
|00000860| 79 70 69 6e 67 20 22 73 | 68 20 3c 66 69 6c 65 22 |yping "s|h <file"|
|00000870| 2c 20 65 2e 67 2e 2e 20 | 20 49 66 20 74 68 69 73 |, e.g.. | If this|
|00000880| 20 61 72 63 68 69 76 65 | 20 69 73 20 63 6f 6d 70 | archive| is comp|
|00000890| 6c 65 74 65 2c 20 79 6f | 75 0a 23 20 77 69 6c 6c |lete, yo|u.# will|
|000008a0| 20 73 65 65 20 74 68 65 | 20 66 6f 6c 6c 6f 77 69 | see the| followi|
|000008b0| 6e 67 20 6d 65 73 73 61 | 67 65 20 61 74 20 74 68 |ng messa|ge at th|
|000008c0| 65 20 65 6e 64 3a 0a 23 | 09 09 22 45 6e 64 20 6f |e end:.#|.."End o|
|000008d0| 66 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2e |f shell |archive.|
|000008e0| 22 0a 23 20 43 6f 6e 74 | 65 6e 74 73 3a 20 20 64 |".# Cont|ents: d|
|000008f0| 6c 2e 63 0a 23 20 57 72 | 61 70 70 65 64 20 62 79 |l.c.# Wr|apped by|
|00000900| 20 62 6f 62 70 40 6f 73 | 63 61 72 20 6f 6e 20 54 | bobp@os|car on T|
|00000910| 75 65 20 46 65 62 20 32 | 35 20 31 34 3a 32 37 3a |ue Feb 2|5 14:27:|
|00000920| 34 38 20 31 39 39 32 0a | 50 41 54 48 3d 2f 62 69 |48 1992.|PATH=/bi|
|00000930| 6e 3a 2f 75 73 72 2f 62 | 69 6e 3a 2f 75 73 72 2f |n:/usr/b|in:/usr/|
|00000940| 75 63 62 20 3b 20 65 78 | 70 6f 72 74 20 50 41 54 |ucb ; ex|port PAT|
|00000950| 48 0a 69 66 20 74 65 73 | 74 20 2d 66 20 64 6c 2e |H.if tes|t -f dl.|
|00000960| 63 20 2d 61 20 22 24 7b | 31 7d 22 20 21 3d 20 22 |c -a "${|1}" != "|
|00000970| 2d 63 22 20 3b 20 74 68 | 65 6e 20 0a 20 20 65 63 |-c" ; th|en . ec|
|00000980| 68 6f 20 73 68 61 72 3a | 20 57 69 6c 6c 20 6e 6f |ho shar:| Will no|
|00000990| 74 20 6f 76 65 72 2d 77 | 72 69 74 65 20 65 78 69 |t over-w|rite exi|
|000009a0| 73 74 69 6e 67 20 66 69 | 6c 65 20 5c 22 64 6c 2e |sting fi|le \"dl.|
|000009b0| 63 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |c\".else|.echo sh|
|000009c0| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|000009d0| 22 64 6c 2e 63 5c 22 20 | 5c 28 32 37 39 35 20 63 |"dl.c\" |\(2795 c|
|000009e0| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|000009f0| 22 73 2f 5e 58 2f 2f 22 | 20 3e 64 6c 2e 63 20 3c |"s/^X//"| >dl.c <|
|00000a00| 3c 27 45 4e 44 5f 4f 46 | 5f 64 6c 2e 63 27 0a 58 |<'END_OF|_dl.c'.X|
|00000a10| 2f 2a 0a 58 20 2a 20 6c | 69 6e 65 33 64 20 77 61 |/*.X * l|ine3d wa|
|00000a20| 73 20 64 65 72 76 69 65 | 64 20 66 72 6f 6d 20 44 |s dervie|d from D|
|00000a30| 69 67 69 74 61 6c 4c 69 | 6e 65 2e 63 20 70 75 62 |igitalLi|ne.c pub|
|00000a40| 6c 69 73 68 65 64 20 61 | 73 20 22 44 69 67 69 74 |lished a|s "Digit|
|00000a50| 61 6c 20 4c 69 6e 65 20 | 44 72 61 77 69 6e 67 22 |al Line |Drawing"|
|00000a60| 0a 58 20 2a 20 62 79 20 | 50 61 75 6c 20 48 65 63 |.X * by |Paul Hec|
|00000a70| 6b 62 65 72 74 20 66 72 | 6f 6d 20 22 47 72 61 70 |kbert fr|om "Grap|
|00000a80| 68 69 63 73 20 47 65 6d | 73 22 2c 20 41 63 61 64 |hics Gem|s", Acad|
|00000a90| 65 6d 69 63 20 50 72 65 | 73 73 2c 20 31 39 39 30 |emic Pre|ss, 1990|
|00000aa0| 0a 58 20 2a 20 0a 58 20 | 2a 20 33 44 20 6d 6f 64 |.X * .X |* 3D mod|
|00000ab0| 69 66 69 63 61 74 69 6f | 6e 73 20 62 79 20 42 6f |ificatio|ns by Bo|
|00000ac0| 62 20 50 65 6e 64 6c 65 | 74 6f 6e 2e 20 54 68 65 |b Pendle|ton. The|
|00000ad0| 20 6f 72 69 67 69 6e 61 | 6c 20 73 6f 75 72 63 65 | origina|l source|
|00000ae0| 20 63 6f 64 65 20 77 61 | 73 20 69 6e 20 74 68 65 | code wa|s in the|
|00000af0| 20 70 75 62 6c 69 63 0a | 58 20 2a 20 64 6f 6d 61 | public.|X * doma|
|00000b00| 69 6e 2c 20 74 68 65 20 | 61 75 74 68 6f 72 20 6f |in, the |author o|
|00000b10| 66 20 74 68 65 20 33 44 | 20 76 65 72 73 69 6f 6e |f the 3D| version|
|00000b20| 20 70 6c 61 63 65 73 20 | 68 69 73 20 6d 6f 64 69 | places |his modi|
|00000b30| 66 69 63 61 74 69 6f 6e | 73 20 69 6e 20 74 68 65 |fication|s in the|
|00000b40| 0a 58 20 2a 20 70 75 62 | 6c 69 63 20 64 6f 6d 61 |.X * pub|lic doma|
|00000b50| 69 6e 20 61 73 20 77 65 | 6c 6c 2e 0a 58 20 2a 20 |in as we|ll..X * |
|00000b60| 0a 58 20 2a 20 6c 69 6e | 65 33 64 20 75 73 65 73 |.X * lin|e3d uses|
|00000b70| 20 42 72 65 73 65 6e 68 | 61 6d 27 73 20 61 6c 67 | Bresenh|am's alg|
|00000b80| 6f 72 69 74 68 6d 20 74 | 6f 20 67 65 6e 65 72 61 |orithm t|o genera|
|00000b90| 74 65 20 74 68 65 20 33 | 20 64 69 6d 65 6e 73 69 |te the 3| dimensi|
|00000ba0| 6f 6e 61 6c 20 70 6f 69 | 6e 74 73 20 6f 6e 20 61 |onal poi|nts on a|
|00000bb0| 0a 58 20 2a 20 6c 69 6e | 65 20 66 72 6f 6d 20 28 |.X * lin|e from (|
|00000bc0| 78 31 2c 20 79 31 2c 20 | 7a 31 29 20 74 6f 20 28 |x1, y1, |z1) to (|
|00000bd0| 78 32 2c 20 79 32 2c 20 | 7a 32 29 0a 58 20 2a 20 |x2, y2, |z2).X * |
|00000be0| 0a 58 20 2a 2f 0a 58 0a | 58 2f 2a 20 66 69 6e 64 |.X */.X.|X/* find|
|00000bf0| 20 6d 61 78 69 6d 75 6d | 20 6f 66 20 61 20 61 6e | maximum| of a an|
|00000c00| 64 20 62 20 2a 2f 0a 58 | 23 64 65 66 69 6e 65 20 |d b */.X|#define |
|00000c10| 4d 41 58 28 61 2c 62 29 | 20 28 28 28 61 29 3e 28 |MAX(a,b)| (((a)>(|
|00000c20| 62 29 29 3f 28 61 29 3a | 28 62 29 29 0a 58 0a 58 |b))?(a):|(b)).X.X|
|00000c30| 2f 2a 20 61 62 73 6f 6c | 75 74 65 20 76 61 6c 75 |/* absol|ute valu|
|00000c40| 65 20 6f 66 20 61 20 2a | 2f 0a 58 23 64 65 66 69 |e of a *|/.X#defi|
|00000c50| 6e 65 20 41 42 53 28 61 | 29 20 28 28 28 61 29 3c |ne ABS(a|) (((a)<|
|00000c60| 30 29 20 3f 20 2d 28 61 | 29 20 3a 20 28 61 29 29 |0) ? -(a|) : (a))|
|00000c70| 0a 58 0a 58 2f 2a 20 74 | 61 6b 65 20 73 69 67 6e |.X.X/* t|ake sign|
|00000c80| 20 6f 66 20 61 2c 20 65 | 69 74 68 65 72 20 2d 31 | of a, e|ither -1|
|00000c90| 2c 20 30 2c 20 6f 72 20 | 31 20 2a 2f 0a 58 23 64 |, 0, or |1 */.X#d|
|00000ca0| 65 66 69 6e 65 20 5a 53 | 47 4e 28 61 29 20 28 28 |efine ZS|GN(a) ((|
|00000cb0| 28 61 29 3c 30 29 20 3f | 20 2d 31 20 3a 20 28 61 |(a)<0) ?| -1 : (a|
|00000cc0| 29 3e 30 20 3f 20 31 20 | 3a 20 30 29 0a 58 0a 58 |)>0 ? 1 |: 0).X.X|
|00000cd0| 70 6f 69 6e 74 33 64 28 | 78 2c 20 79 2c 20 7a 29 |point3d(|x, y, z)|
|00000ce0| 0a 58 20 20 20 20 69 6e | 74 20 78 2c 20 79 2c 20 |.X in|t x, y, |
|00000cf0| 7a 3b 0a 58 7b 0a 58 0a | 58 20 20 20 20 2f 2a 20 |z;.X{.X.|X /* |
|00000d00| 6f 75 74 70 75 74 20 74 | 68 65 20 70 6f 69 6e 74 |output t|he point|
|00000d10| 20 61 73 20 79 6f 75 20 | 73 65 65 20 66 69 74 20 | as you |see fit |
|00000d20| 2a 2f 0a 58 0a 58 7d 0a | 58 0a 58 6c 69 6e 65 33 |*/.X.X}.|X.Xline3|
|00000d30| 64 28 78 31 2c 20 79 31 | 2c 20 78 32 2c 20 79 32 |d(x1, y1|, x2, y2|
|00000d40| 2c 20 7a 31 2c 20 7a 32 | 29 0a 58 20 20 20 20 69 |, z1, z2|).X i|
|00000d50| 6e 74 20 78 31 2c 20 79 | 31 2c 20 78 32 2c 20 79 |nt x1, y|1, x2, y|
|00000d60| 32 2c 20 7a 31 2c 20 7a | 32 3b 0a 58 7b 0a 58 20 |2, z1, z|2;.X{.X |
|00000d70| 20 20 20 69 6e 74 20 78 | 64 2c 20 79 64 2c 20 7a | int x|d, yd, z|
|00000d80| 64 3b 0a 58 20 20 20 20 | 69 6e 74 20 78 2c 20 79 |d;.X |int x, y|
|00000d90| 2c 20 7a 3b 0a 58 20 20 | 20 20 69 6e 74 20 61 78 |, z;.X | int ax|
|00000da0| 2c 20 61 79 2c 20 61 7a | 3b 0a 58 20 20 20 20 69 |, ay, az|;.X i|
|00000db0| 6e 74 20 73 78 2c 20 73 | 79 2c 20 73 7a 3b 0a 58 |nt sx, s|y, sz;.X|
|00000dc0| 20 20 20 20 69 6e 74 20 | 64 78 2c 20 64 79 2c 20 | int |dx, dy, |
|00000dd0| 64 7a 3b 0a 58 0a 58 20 | 20 20 20 64 78 20 3d 20 |dz;.X.X | dx = |
|00000de0| 78 32 20 2d 20 78 31 3b | 0a 58 20 20 20 20 64 79 |x2 - x1;|.X dy|
|00000df0| 20 3d 20 79 32 20 2d 20 | 79 31 3b 0a 58 20 20 20 | = y2 - |y1;.X |
|00000e00| 20 64 7a 20 3d 20 7a 32 | 20 2d 20 7a 31 3b 0a 58 | dz = z2| - z1;.X|
|00000e10| 0a 58 20 20 20 20 61 78 | 20 3d 20 41 42 53 28 64 |.X ax| = ABS(d|
|00000e20| 78 29 20 3c 3c 20 31 3b | 0a 58 20 20 20 20 61 79 |x) << 1;|.X ay|
|00000e30| 20 3d 20 41 42 53 28 64 | 79 29 20 3c 3c 20 31 3b | = ABS(d|y) << 1;|
|00000e40| 0a 58 20 20 20 20 61 7a | 20 3d 20 41 42 53 28 64 |.X az| = ABS(d|
|00000e50| 7a 29 20 3c 3c 20 31 3b | 0a 58 0a 58 20 20 20 20 |z) << 1;|.X.X |
|00000e60| 73 78 20 3d 20 5a 53 47 | 4e 28 64 78 29 3b 0a 58 |sx = ZSG|N(dx);.X|
|00000e70| 20 20 20 20 73 79 20 3d | 20 5a 53 47 4e 28 64 79 | sy =| ZSGN(dy|
|00000e80| 29 3b 0a 58 20 20 20 20 | 73 7a 20 3d 20 5a 53 47 |);.X |sz = ZSG|
|00000e90| 4e 28 64 7a 29 3b 0a 58 | 0a 58 20 20 20 20 78 20 |N(dz);.X|.X x |
|00000ea0| 3d 20 78 31 3b 0a 58 20 | 20 20 20 79 20 3d 20 79 |= x1;.X | y = y|
|00000eb0| 31 3b 0a 58 20 20 20 20 | 7a 20 3d 20 7a 31 3b 0a |1;.X |z = z1;.|
|00000ec0| 58 0a 58 20 20 20 20 69 | 66 20 28 61 78 20 3e 3d |X.X i|f (ax >=|
|00000ed0| 20 4d 41 58 28 61 79 2c | 20 61 7a 29 29 20 20 20 | MAX(ay,| az)) |
|00000ee0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 78 20 64 6f | | /* x do|
|00000ef0| 6d 69 6e 61 6e 74 20 2a | 2f 0a 58 20 20 20 20 7b |minant *|/.X {|
|00000f00| 0a 58 20 20 20 20 20 20 | 20 20 79 64 20 3d 20 61 |.X | yd = a|
|00000f10| 79 20 2d 20 28 61 78 20 | 3e 3e 20 31 29 3b 0a 58 |y - (ax |>> 1);.X|
|00000f20| 20 20 20 20 20 20 20 20 | 7a 64 20 3d 20 61 7a 20 | |zd = az |
|00000f30| 2d 20 28 61 78 20 3e 3e | 20 31 29 3b 0a 58 20 20 |- (ax >>| 1);.X |
|00000f40| 20 20 20 20 20 20 66 6f | 72 20 28 3b 3b 29 0a 58 | fo|r (;;).X|
|00000f50| 20 20 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 | |{.X |
|00000f60| 20 20 20 20 20 20 20 70 | 6f 69 6e 74 33 64 28 78 | p|oint3d(x|
|00000f70| 2c 20 79 2c 20 7a 29 3b | 0a 58 20 20 20 20 20 20 |, y, z);|.X |
|00000f80| 20 20 20 20 20 20 69 66 | 20 28 78 20 3d 3d 20 78 | if| (x == x|
|00000f90| 32 29 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |2).X | |
|00000fa0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{.X | |
|00000fb0| 20 20 20 72 65 74 75 72 | 6e 3b 0a 58 20 20 20 20 | retur|n;.X |
|00000fc0| 20 20 20 20 20 20 20 20 | 7d 0a 58 0a 58 20 20 20 | |}.X.X |
|00000fd0| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 79 64 20 | | if (yd |
|00000fe0| 3e 3d 20 30 29 0a 58 20 | 20 20 20 20 20 20 20 20 |>= 0).X | |
|00000ff0| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00001000| 20 20 20 20 20 20 79 20 | 2b 3d 20 73 79 3b 0a 58 | y |+= sy;.X|
|00001010| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001020| 79 64 20 2d 3d 20 61 78 | 3b 0a 58 20 20 20 20 20 |yd -= ax|;.X |
|00001030| 20 20 20 20 20 20 20 7d | 0a 58 0a 58 20 20 20 20 | }|.X.X |
|00001040| 20 20 20 20 20 20 20 20 | 69 66 20 28 7a 64 20 3e | |if (zd >|
|00001050| 3d 20 30 29 0a 58 20 20 | 20 20 20 20 20 20 20 20 |= 0).X | |
|00001060| 20 20 7b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00001070| 20 20 20 20 20 7a 20 2b | 3d 20 73 7a 3b 0a 58 20 | z +|= sz;.X |
|00001080| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 7a | | z|
|00001090| 64 20 2d 3d 20 61 78 3b | 0a 58 20 20 20 20 20 20 |d -= ax;|.X |
|000010a0| 20 20 20 20 20 20 7d 0a | 58 0a 58 20 20 20 20 20 | }.|X.X |
|000010b0| 20 20 20 20 20 20 20 78 | 20 2b 3d 20 73 78 3b 0a | x| += sx;.|
|000010c0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 79 64 20 |X | yd |
|000010d0| 2b 3d 20 61 79 3b 0a 58 | 20 20 20 20 20 20 20 20 |+= ay;.X| |
|000010e0| 20 20 20 20 7a 64 20 2b | 3d 20 61 7a 3b 0a 58 20 | zd +|= az;.X |
|000010f0| 20 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 7d 0a | }|.X }.|
|00001100| 58 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 61 79 |X els|e if (ay|
|00001110| 20 3e 3d 20 4d 41 58 28 | 61 78 2c 20 61 7a 29 29 | >= MAX(|ax, az))|
|00001120| 20 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 79 | | /* y|
|00001130| 20 64 6f 6d 69 6e 61 6e | 74 20 2a 2f 0a 58 20 20 | dominan|t */.X |
|00001140| 20 20 7b 0a 58 20 20 20 | 20 20 20 20 20 78 64 20 | {.X | xd |
|00001150| 3d 20 61 78 20 2d 20 28 | 61 79 20 3e 3e 20 31 29 |= ax - (|ay >> 1)|
|00001160| 3b 0a 58 20 20 20 20 20 | 20 20 20 7a 64 20 3d 20 |;.X | zd = |
|00001170| 61 7a 20 2d 20 28 61 79 | 20 3e 3e 20 31 29 3b 0a |az - (ay| >> 1);.|
|00001180| 58 20 20 20 20 20 20 20 | 20 66 6f 72 20 28 3b 3b |X | for (;;|
|00001190| 29 0a 58 20 20 20 20 20 | 20 20 20 7b 0a 58 20 20 |).X | {.X |
|000011a0| 20 20 20 20 20 20 20 20 | 20 20 70 6f 69 6e 74 33 | | point3|
|000011b0| 64 28 78 2c 20 79 2c 20 | 7a 29 3b 0a 58 20 20 20 |d(x, y, |z);.X |
|000011c0| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 79 20 3d | | if (y =|
|000011d0| 3d 20 79 32 29 0a 58 20 | 20 20 20 20 20 20 20 20 |= y2).X | |
|000011e0| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|000011f0| 20 20 20 20 20 20 72 65 | 74 75 72 6e 3b 0a 58 20 | re|turn;.X |
|00001200| 20 20 20 20 20 20 20 20 | 20 20 20 7d 0a 58 0a 58 | | }.X.X|
|00001210| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 28 | | if (|
|00001220| 78 64 20 3e 3d 20 30 29 | 0a 58 20 20 20 20 20 20 |xd >= 0)|.X |
|00001230| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 20 | {.|X |
|00001240| 20 20 20 20 20 20 20 20 | 20 78 20 2b 3d 20 73 78 | | x += sx|
|00001250| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00001260| 20 20 20 78 64 20 2d 3d | 20 61 79 3b 0a 58 20 20 | xd -=| ay;.X |
|00001270| 20 20 20 20 20 20 20 20 | 20 20 7d 0a 58 0a 58 20 | | }.X.X |
|00001280| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 7a | | if (z|
|00001290| 64 20 3e 3d 20 30 29 0a | 58 20 20 20 20 20 20 20 |d >= 0).|X |
|000012a0| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 20 20 | {.X| |
|000012b0| 20 20 20 20 20 20 20 20 | 7a 20 2b 3d 20 73 7a 3b | |z += sz;|
|000012c0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|000012d0| 20 20 7a 64 20 2d 3d 20 | 61 79 3b 0a 58 20 20 20 | zd -= |ay;.X |
|000012e0| 20 20 20 20 20 20 20 20 | 20 7d 0a 58 0a 58 20 20 | | }.X.X |
|000012f0| 20 20 20 20 20 20 20 20 | 20 20 79 20 2b 3d 20 73 | | y += s|
|00001300| 79 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |y;.X | |
|00001310| 78 64 20 2b 3d 20 61 78 | 3b 0a 58 20 20 20 20 20 |xd += ax|;.X |
|00001320| 20 20 20 20 20 20 20 7a | 64 20 2b 3d 20 61 7a 3b | z|d += az;|
|00001330| 0a 58 20 20 20 20 20 20 | 20 20 7d 0a 58 20 20 20 |.X | }.X |
|00001340| 20 7d 0a 58 20 20 20 20 | 65 6c 73 65 20 69 66 20 | }.X |else if |
|00001350| 28 61 7a 20 3e 3d 20 4d | 41 58 28 61 78 2c 20 61 |(az >= M|AX(ax, a|
|00001360| 79 29 29 20 20 20 20 20 | 20 20 20 20 20 20 20 2f |y)) | /|
|00001370| 2a 20 7a 20 64 6f 6d 69 | 6e 61 6e 74 20 2a 2f 0a |* z domi|nant */.|
|00001380| 58 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |X {.X| |
|00001390| 78 64 20 3d 20 61 78 20 | 2d 20 28 61 7a 20 3e 3e |xd = ax |- (az >>|
|000013a0| 20 31 29 3b 0a 58 20 20 | 20 20 20 20 20 20 79 64 | 1);.X | yd|
|000013b0| 20 3d 20 61 79 20 2d 20 | 28 61 7a 20 3e 3e 20 31 | = ay - |(az >> 1|
|000013c0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 66 6f 72 20 |);.X | for |
|000013d0| 28 3b 3b 29 0a 58 20 20 | 20 20 20 20 20 20 7b 0a |(;;).X | {.|
|000013e0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 70 6f 69 |X | poi|
|000013f0| 6e 74 33 64 28 78 2c 20 | 79 2c 20 7a 29 3b 0a 58 |nt3d(x, |y, z);.X|
|00001400| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 28 | | if (|
|00001410| 7a 20 3d 3d 20 7a 32 29 | 0a 58 20 20 20 20 20 20 |z == z2)|.X |
|00001420| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 20 | {.|X |
|00001430| 20 20 20 20 20 20 20 20 | 20 72 65 74 75 72 6e 3b | | return;|
|00001440| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0a |.X | }.|
|00001450| 58 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 69 |X.X | i|
|00001460| 66 20 28 78 64 20 3e 3d | 20 30 29 0a 58 20 20 20 |f (xd >=| 0).X |
|00001470| 20 20 20 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 | | {.X |
|00001480| 20 20 20 20 20 20 20 20 | 20 20 20 20 78 20 2b 3d | | x +=|
|00001490| 20 73 78 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 | sx;.X | |
|000014a0| 20 20 20 20 20 20 78 64 | 20 2d 3d 20 61 7a 3b 0a | xd| -= az;.|
|000014b0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 0a 58 |X | }.X|
|000014c0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 69 66 |.X | if|
|000014d0| 20 28 79 64 20 3e 3d 20 | 30 29 0a 58 20 20 20 20 | (yd >= |0).X |
|000014e0| 20 20 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 | |{.X |
|000014f0| 20 20 20 20 20 20 20 20 | 20 20 20 79 20 2b 3d 20 | | y += |
|00001500| 73 79 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |sy;.X | |
|00001510| 20 20 20 20 20 79 64 20 | 2d 3d 20 61 7a 3b 0a 58 | yd |-= az;.X|
|00001520| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0a 58 0a | | }.X.|
|00001530| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 7a 20 2b |X | z +|
|00001540| 3d 20 73 7a 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |= sz;.X | |
|00001550| 20 20 20 78 64 20 2b 3d | 20 61 78 3b 0a 58 20 20 | xd +=| ax;.X |
|00001560| 20 20 20 20 20 20 20 20 | 20 20 79 64 20 2b 3d 20 | | yd += |
|00001570| 61 79 3b 0a 58 20 20 20 | 20 20 20 20 20 7d 0a 58 |ay;.X | }.X|
|00001580| 20 20 20 20 7d 0a 58 7d | 0a 45 4e 44 5f 4f 46 5f | }.X}|.END_OF_|
|00001590| 64 6c 2e 63 0a 69 66 20 | 74 65 73 74 20 32 37 39 |dl.c.if |test 279|
|000015a0| 35 20 2d 6e 65 20 60 77 | 63 20 2d 63 20 3c 64 6c |5 -ne `w|c -c <dl|
|000015b0| 2e 63 60 3b 20 74 68 65 | 6e 0a 20 20 20 20 65 63 |.c`; the|n. ec|
|000015c0| 68 6f 20 73 68 61 72 3a | 20 5c 22 64 6c 2e 63 5c |ho shar:| \"dl.c\|
|000015d0| 22 20 75 6e 70 61 63 6b | 65 64 20 77 69 74 68 20 |" unpack|ed with |
|000015e0| 77 72 6f 6e 67 20 73 69 | 7a 65 21 0a 66 69 0a 23 |wrong si|ze!.fi.#|
|000015f0| 20 65 6e 64 20 6f 66 20 | 6f 76 65 72 77 72 69 74 | end of |overwrit|
|00001600| 69 6e 67 20 63 68 65 63 | 6b 0a 66 69 0a 65 63 68 |ing chec|k.fi.ech|
|00001610| 6f 20 73 68 61 72 3a 20 | 45 6e 64 20 6f 66 20 73 |o shar: |End of s|
|00001620| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2e 0a 65 78 |hell arc|hive..ex|
|00001630| 69 74 20 30 0a 0a | |it 0.. | |
+--------+-------------------------+-------------------------+--------+--------+