View Single Post
Old 03-20-2012, 10:15 PM   #28
geekmaster
Carpe diem, c'est la vie.
geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.
 
geekmaster's Avatar
 
Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
Arrow tangle 1.0 - triangle fun for the K3



tangle

Here is a little "something" for the K3 I whipped up, inspired
by the K3 graphical exploits of PoP and kaminkatze:

...tangle:
Spoiler:
PHP Code:
#!/bin/sh
######################################
## tangle - triangle fun for the K3 ##
## version 1.0        by geekmaster ##
##----------------------------------##
## WARNING: K3 eips '' very slow... ##
## so use eips only in OUTER loops! ##
######################################

#=================================
# initvar - initialize global vars
#---------------------------------
initvar() {
  
B=$(echo -'\xff');B=$B$B$B$B$B;B=$B$B$B$B$B;B=$B$B$B$B;B=$B$B$B
  DZ
=/dev/zero DN=/dev/null DF=/dev/fb0 VX=300
}

#========================
# bangle - black triangle
# usage: bangle x y h
#------------------------
bangle() {
  
local x=$1 y=$2 h=$3
  
for i in $(seq 0 1 $h); do
    echo -
e $B|dd of=$DF bs=1 count=$i seek=$(((y+i)*VX-i/2+x)) 2>$DN
  done
eips ''
}

#========================
# wangle - white triangle
# usage: wangle x y h
#------------------------
wangle() {
  
local x=$1 y=$2 h=$3                                                                                                                      
  
for i in $(seq 0 1 $h); do                                                                                                                
    
dd if=$DZ of=$DF bs=1 count=$i seek=$(((y+i)*VX-i/2+x)) 2>$DN                                                                       
  done
eips ''                                                                                                                                      
}   

#=================================
# tangle - triangle fun for the K3
#---------------------------------            
tangle() {
  
bangle 150 250 284
  wangle 150 275 242
  bangle 150 300 100
  bangle 100 400 100
  bangle 200 400 100
  wangle 150 320  66
  wangle 100 420  66
  wangle 200 420  66
  bangle 150 400  50
  bangle 125 400  25
  bangle 175 400  25
  bangle 150 450  25
  wangle 150 416  25
  bangle 150 335  42
  bangle 100 435  42
  bangle 200 435  42
  eips 19 28 
"Tangle  1.0"
  
eips 18 30 "by Geekmaster"
}

eips -# clear screen
initvar # init vars   
tangle # triangle fun for the K3 
[B]
WARNING: K3 eips '' very slow...
so use eips only in OUTER loops!

....FAQ:
Spoiler:
Q1) Why is geekmaster always editting his old posts?
A1) Severe typophrenia: .. http://justinharder.la/stills/item/typophrenia/

Q2) Can this guy be cured?
A2) No way! The difference between genious and insanity is a very fine line:

EDIT: I did this as a quick demo, to show that we can do fast framebuffer graphics by using a larger "dd count=" value for large area fills, as I did here. I recommend modifying the midpoint circle algorithm to use a similar method for filled circles, to be used in Conway's Life, Reversi (Othello) or other "go"-based games, checkers, bingo, and just pure graphic artworks. Amazing what we can do with simple shell scripting and a little imagination, isn't it?


Last edited by geekmaster; 03-21-2012 at 02:41 PM. Reason: severe typophrenia
geekmaster is offline   Reply With Quote