Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

High Resolution Screen. 1

Status
Not open for further replies.

Oak

Programmer
Aug 6, 2000
77
0
0
CA
A painter starting to paint a new chef-d'oeuvre take his first palette of 16 color. As the painting goes on, he deceided to switch with some brand new color, adding-on some vitality to his art.<br>The big difference between the previously painter and the Qbasic programmer reside in the number of color each one can display at a time on his screen or art sheet.<br><br>Mmm..Really???<br><br>(to be continued...)
 
Oak, I can't wait! If you have found a new way to trick Qbasic we will drool in unison. If you have found an old way to trick Qbasic... well, we probably needed the reminder anyway. In any case, bring it to the table. These old dogs aren't too old to learn new tricks or to be reminded of the old ones.<br><br><i>Every</i> solution brings positive benefits to this forum.<br><br>Fresh air and workable solutions!<br> <p> <br><a href=mailto: > </a><br><a href= plain black box</a><br>
 
Dow!<br>I'm pretty sorry. I didn't imagine the fact that my previous sent could let that much on your appetite. [And if knowledge is as important for you that it is for me, you would probably scatch till bleeding.Ah, the dangers of computers...]<br><br>Ok. Graphics are kind of as important that a complicated matter. I tried to combine my artistics skills with my &quot;programmer&quot; skill and there is what I've found.<br><br>- Basics colors for painting (on a paper) are [ Red - Yellow - Blue ]<br>- Basics colors for a T.V. or a monitor are&nbsp;&nbsp;&nbsp;&nbsp;[ Red - Green - Blue&nbsp;&nbsp;] &quot;stand for the RGB&quot;<br><br>The question is: Why are they differents? But the fact is that they actually act the same. Chemicaly mixing painting colors with others ones result in a complicated way that I didn't truly understand but it doesn't really matter for Qbasic.<br><br>On monitor, Red and Green put together result in Yellow. I've made a program that prove it but I lost it. I'll try to bring it on an other tips later.<br><br>So, my &quot;discover&quot; result in a way to display the 16 colors allowed by Qbasic high resolution screen in a way that trick the eyes. <br>For exemple: drawing a line made by Green and Red pixels will act like a Yellow line for the human eye.<br><br>Sorry, I would like to elaborate more but I run out of time. I hope that it have bring you the most of the idea for now. I'll continue to post more in a while. Send me back your comments on this topic. Graphics are on of a major thing a programmer will (and have) to deal with as a program is on the way.<br><br>See you soon.<br><br>Tips of life: As food is what feed our body, so the knowlegde is for the soul. When your satiated, don't try to eat more than you can take; you'll find yourself out for a while. Trust me.<br><br><br>
 
basically with high res, like on a TV screen, or monitor (except TV are more definite, and then Monitors are even more detailed) the monitor's pixels are 3 RGB dots, by increasing the intensity on different colors of each dots they show up as that color. same thing he's saying, except on a larger scale, taking pixels of pure colors, and drawing them interlink and closely together to create different mixes. An old trick for most, but a pretty valuable one for most. <p>Karl<br><a href=mailto:kb244@kb244.com>kb244@kb244.com</a><br><a href= </a><br>Experienced in : C++(both VC++ and Borland),VB1(dos) thru VB6, Delphi 3 pro, HTML, Visual InterDev 6(ASP(WebProgramming/Vbscript)<br>
 
you might want to make this into a FAQ , so that you can put it in more details, and you can label it &quot;How to similate more than 16 colors in Hi-Res&quot;<br><br> <p>Karl<br><a href=mailto:kb244@kb244.com>kb244@kb244.com</a><br><a href= </a><br>Experienced in : C++(both VC++ and Borland),VB1(dos) thru VB6, Delphi 3 pro, HTML, Visual InterDev 6(ASP(WebProgramming/Vbscript)<br>
 
Ah, I've seen that trick.&nbsp;&nbsp;Except, mine uses 2 pixels instead of 3, giving you about 13bits of color at 320x200 virtual resolution.&nbsp;&nbsp;I got that idea from a demo called
 
Ah, I've seen that trick.&nbsp;&nbsp;Except, mine uses 2 pixels instead of 3, giving you about 13bits of color at 320x200 virtual resolution.&nbsp;&nbsp;I got that idea from a demo called Sunflower, and the technical trick from logiclrd.&nbsp;&nbsp;This looks (IMO) much better than 3 pixels for 1 virtual pixel because the size of the virtual pixel is much smaller.&nbsp;&nbsp;I used it in my 13bit demo.&nbsp;&nbsp;<br>You can check it out at <A HREF=" TARGET="_new"> you try that, you can see <A HREF=" TARGET="_new"> which does some extra fading stuff with the same picture.<br><br>
 
What a pretty,pretty,pretty-pretty-pretty good example!<br>(I think that I've fall in love...Mmmmh,Japanises cartoons)<br><br>Well, I wouldn't have found the weel, but a simple way to give newbies(like I am) an other way to display any(and when I say any...) color you can take from Qbasic in a high resolution screen.<br><br>The following exemple(which I didn't have the time to simplified (but it surely is the simpliest way to really understood it). If you want me to explain it in details(or maybe someone can too), just give me a sign. Far of me the idea to show you something that you already understand.<br><br>As a french Canadian, my programs are in french(the old language of love...Mmmm...(free publicity))<br>Green = Vert<br>Yellow = Jaune<br>Red = Rouge<br>Blue = Bleu<br><br>REM PALETTE DE PLUSIEURS COULEURS<br><br>CLS : SCREEN 12<br><br>REM AFFICHE LE TABLEAU (8 x 16)<br>FOR i% = 6 TO 629 STEP 39<br>FOR ii% = 11 TO 361 STEP 50<br>LINE (i%, ii%)-(i% + 39, ii% + 50), 15, B<br>NEXT ii%<br>NEXT i%<br><br>REM BLEU<br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU0$ = BLEU0$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 15), BLEU0$<br>DATA 255,170,170,255,255,85,85,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU1$ = BLEU1$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 65), BLEU1$<br>DATA 255,170,85,0,255,85,170,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU2$ = BLEU2$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 115), BLEU2$<br>DATA 255,0,0,255,255,0,0,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU3$ = BLEU3$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 165), BLEU3$<br>DATA 255,0,0,85,255,0,0,170<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU4$ = BLEU4$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 215), BLEU4$<br>DATA 255,0,0,0,255,0,0,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU5$ = BLEU5$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 265), BLEU5$<br>DATA 85,0,0,255,170,0,0,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU6$ = BLEU6$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 315), BLEU6$<br>DATA 85,0,0,170,170,0,0,85<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;BLEU7$ = BLEU7$ + CHR$(OAK)<br>NEXT i%<br>PAINT (10, 365), BLEU7$<br>DATA 85,0,0,0,170,0,0,0<br><br>REM VERT<br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT0$ = VERT0$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 15), VERT0$<br>DATA 170,255,170,255,85,255,85,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT1$ = VERT1$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 65), VERT1$<br>DATA 170,255,85,0,85,255,170,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT2$ = VERT2$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 115), VERT2$<br>DATA 0,255,0,255,0,255,0,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT3$ = VERT3$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 165), VERT3$<br>DATA 0,255,0,85,0,255,0,170<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT4$ = VERT4$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 215), VERT4$<br>DATA 0,255,0,0,0,255,0,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT5$ = VERT5$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 265), VERT5$<br>DATA 0,85,0,255,0,170,0,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT6$ = VERT6$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 315), VERT6$<br>DATA 0,85,0,170,0,170,0,85<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;VERT7$ = VERT7$ + CHR$(OAK)<br>NEXT i%<br>PAINT (50, 365), VERT7$<br>DATA 0,85,0,0,0,170,0,0<br><br>REM ROUGE<br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE0$ = ROUGE0$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 15), ROUGE0$<br>DATA 170,170,255,255,85,85,255,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE1$ = ROUGE1$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 65), ROUGE1$<br>DATA 170,85,255,0,85,170,255,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE2$ = ROUGE2$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 115), ROUGE2$<br>DATA 0,0,255,255,0,0,255,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE3$ = ROUGE3$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 165), ROUGE3$<br>DATA 0,0,255,85,0,0,255,170<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE4$ = ROUGE4$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 215), ROUGE4$<br>DATA 0,0,255,0,0,0,255,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE5$ = ROUGE5$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 265), ROUGE5$<br>DATA 0,0,85,255,0,0,170,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE6$ = ROUGE6$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 315), ROUGE6$<br>DATA 0,0,85,170,0,0,170,85<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;ROUGE7$ = ROUGE7$ + CHR$(OAK)<br>NEXT i%<br>PAINT (90, 365), ROUGE7$<br>DATA 0,0,85,0,0,0,170,0<br><br>REM JAUNE<br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE0$ = JAUNE0$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 15), JAUNE0$<br>DATA 170,255,255,255,85,255,255,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE1$ = JAUNE1$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 65), JAUNE1$<br>DATA 170,255,255,0,85,255,255,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE2$ = JAUNE2$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 115), JAUNE2$<br>DATA 0,255,255,255,0,255,255,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE3$ = JAUNE3$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 165), JAUNE3$<br>DATA 0,255,255,85,0,255,255,170<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE4$ = JAUNE4$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 215), JAUNE4$<br>DATA 0,255,255,0,0,255,255,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE5$ = JAUNE5$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 265), JAUNE5$<br>DATA 0,85,85,255,0,170,170,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE6$ = JAUNE6$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 315), JAUNE6$<br>DATA 0,85,85,170,0,170,170,85<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;JAUNE7$ = JAUNE7$ + CHR$(OAK)<br>NEXT i%<br>PAINT (130, 365), JAUNE7$<br>DATA 0,85,85,0,0,170,170,0<br><br>REM CYAN<br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN0$ = CYAN0$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 15), CYAN0$<br>DATA 255,170,255,255,255,85,255,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN1$ = CYAN1$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 65), CYAN1$<br>DATA 255,170,255,0,255,85,255,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN2$ = CYAN2$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 115), CYAN2$<br>DATA 255,0,255,255,255,0,255,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN3$ = CYAN3$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 165), CYAN3$<br>DATA 255,0,255,85,255,0,255,170<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN4$ = CYAN4$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 215), CYAN4$<br>DATA 255,0,255,0,255,0,255,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN5$ = CYAN5$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 265), CYAN5$<br>DATA 85,0,85,255,170,0,170,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN6$ = CYAN6$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 315), CYAN6$<br>DATA 85,0,85,170,170,0,170,85<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;CYAN7$ = CYAN7$ + CHR$(OAK)<br>NEXT i%<br>PAINT (170, 365), CYAN7$<br>DATA 85,0,85,0,170,0,170,0<br><br>REM MAGENTA<br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA0$ = MAGENTA0$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 15), MAGENTA0$<br>DATA 255,255,170,255,255,255,85,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA1$ = MAGENTA1$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 65), MAGENTA1$<br>DATA 255,255,170,0,255,255,85,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA2$ = MAGENTA2$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 115), MAGENTA2$<br>DATA 255,255,0,255,255,255,0,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA3$ = MAGENTA3$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 165), MAGENTA3$<br>DATA 255,255,0,85,255,255,0,170<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA4$ = MAGENTA4$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 215), MAGENTA4$<br>DATA 255,255,0,0,255,255,0,0<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA5$ = MAGENTA5$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 265), MAGENTA5$<br>DATA 85,85,0,255,170,170,0,255<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA6$ = MAGENTA6$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 315), MAGENTA6$<br>DATA 85,85,0,170,170,170,0,85<br><br>FOR i% = 0 TO 7<br>&nbsp;READ OAK<br>&nbsp;MAGENTA7$ = MAGENTA7$ + CHR$(OAK)<br>NEXT i%<br>PAINT (210, 365), MAGENTA7$<br>DATA 85,85,0,0,170,170,0,0<br><br>Enjoy :)<br><br><br><br>
 
Of corse, like I said, this little(???) program is in a great disorder. But I think that I've showed my work there. Simple way, great results. That's how we like it.
 
That <i>is</i> how we like it! Good code, works great. And definately food for thought.<br><br>I'd never considered this approach but you have opened my mind to more possibilities. Thanks, Oak. <p> <br><a href=mailto: > </a><br><a href= plain black box</a><br>
 
But as well as having good code, it has to be robust as well, which means if it is possible to shorten that code, it is definitly swelled up too much.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top