BBS: Inland Empire Archive Date: 06-14-93 (11:54) Number: 397 From: PETER BARNEY Refer#: NONE To: GERALD RICHTER Recvd: NO Subj: CGA136.BAS 4/6 Conf: (2) Quik_Bas
'>>> Start of page 4. NEXT FOR yv = 0 TO r xv = SQR(r ^ 2 - yv ^ 2) PixSet x + xv, y + yv, c PixSet x - xv, y - yv, c PixSet x + xv, y - yv, c PixSet x - xv, y + yv, c NEXT END SUB SUB Pget (x1, y1, x2, Y2, v()) IF x1 > x2 THEN SWAP x1, x2: SWAP y1, Y2 'REDIM v((x2 - x1) * (y2 - y1) + 4) v(1) = x2 - x1: v(2) = Y2 - y1: P = 3 FOR y = y1 TO Y2 FOR x = x1 TO x2 v(P) = PixColr(x, y) P = P + 1 NEXT NEXT END SUB FUNCTION PixColr (x, y) ' ' Returns the color of the pixel at the specified coordinates ' ' To find the two colors that were blended to create the color, use ' c1 = PixColr (x,y) \ 16 ' c2 = PixColr (x,y) and 15 ' IF ModeNum = 136 THEN PixColr = PEEK(((2 * x + (y * 160)) AND &HFFFE) + 1) ELSE PIXELADDR = ((x + (y * 160)) AND &HFFFE) + 1 NIBBLE = (x + (y * 160)) MOD 2 IF NIBBLE = 0 THEN PixColr = (PEEK(PIXELADDR) AND &HF0) \ 16 IF NIBBLE = 1 THEN PixColr = PEEK(PIXELADDR) AND &HF END IF END FUNCTION SUB PixSet (x, y, Colr) ' ' Plots a point at x,y in Colr color. ' ' Colr is calculated by: color1 * 16 + color2 ' this will give you a blending of the two colors ' IF ModeNum = 136 THEN POKE ((2 * x + (y * 160)) AND &HFFFE) + 1, Colr ELSE PIXELADDR = ((x + (y * 160)) AND &HFFFE) + 1 NIBBLE = (x + (y * 160)) MOD 2 IF NIBBLE = 0 THEN POKE PIXELADDR, (PEEK(PIXELADDR) AND &HF)_ + Colr * &H10 IF NIBBLE = 1 THEN POKE PIXELADDR, (PEEK(PIXELADDR) AND_ &HF0) + Colr END IF END SUB SUB Pline (mx1, my1, mx2, my2, MColr) ' ' Not tested, may not work... ' x1 = mx1: y1 = my1: x2 = mx2: Y2 = my2: Colr = MColr IF ABS(x2 - x1) > ABS(Y2 - y1) THEN 'x is major IF x1 > x2 THEN SWAP x1, x2: SWAP y1, Y2 IF x2 - x1 = 0 THEN ys! = 0 ELSE ys! = (Y2 - y1) / (x2 - x1) FOR l = 0 TO (x2 - x1) PixSet x1 + l, y1 + M!, Colr: M! = M! + ys! NEXT ELSE 'y is major IF y1 > Y2 THEN SWAP y1, Y2: SWAP x1, x2 IF Y2 - y1 = 0 THEN xs! = 0 ELSE xs! = (x2 - x1) / (Y2 - y1) FOR l = 0 TO (Y2 - y1) PixSet x1 + M!, y1 + l, Colr: M! = M! + xs! NEXT END IF END SUB '>>> Continued on page 5 * Call PTS! * As a math atheist, I should be excused from this.- Calvin --- TMail v1.31.3 * Origin: Programmer's Tech Shop - Toledo, Ohio (1:234/56)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET