appgurueu.github.io/applications.html

461 lines
18 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheets.css"/>
<html lang="de" dir="ltr" class="client-nojs">
<title>Appguru EU - Applications</title>
<div class="doc">
<div class="parent">
<div class="menu">
<ul id="Navigation">
<li><span>Applications</span></li>
<li><a href="index.html">Home</a></li>
<li><a href="aboutme.html">About Me</a></li>
<li><a href="gallery.html">Gallery</a></li>
</ul>
</div>
</div>
<meta name="description" content="Appguru EU Website">
<meta name="keywords" content="apps,Apps,appguru-eu,appguru.eu,Appguru EU,">
<meta name="author" content="Lars Müller">
<meta name="DC.Publisher" content="GitHub">
<meta name="DC.Date" content="2018,3.1">
<meta name="DC.Identifier" content="appguru.eu">
<meta name="DC.Language" content="de">
<meta name="DC.Rights" content="free">
<meta name="DC.Date.created" content="2018-1-3T08:00+01:00">
<meta name="SELF.Pagetype" content="html">
<link rel="icon" type="image/ico" href="favicon.ico"/>
<h1>Applications</h1>
<h3>Rotational Game</h3>
<a id="t">A simple game based on a BWINF task.</a></br>
<a id="t">Language : German.</a></br>
<a id="u">Download : </a></br>
<a class="link" id="t" href="Rotationsspiel.jar">Rotational Game Download</a><br>
<h3>Defender</h3>
<a id="t">A Pygame based game coded in Python.</a></br>
<a id="t">Languages : English and German.</a></br>
<a id="u">Screenshot : </a></br>
<input type="image" class="bild" id="defender_advertisement" src="defender_screenie.png" data-title="Unnamed" data-description="No description available." onclick="show_image_popup(this.id);"></input>
</br>
<a id="u">Download : </a></br>
<a class="link" id="t" href="Defender.zip">Defender - the Game - Download</a><br>
<h3>BWINF Solutions</h3>
<a id="t">The solutions to the 34., 35. and 36. BWINF, the "Bundeswettbewerb Informatik". I teamed with my brother for the 35. and 36.</a></br>
<a id="t">Language : Obviously only German.</a></br>
<a id="u">Downloads : </a></br>
<a class="link" id="t" href="BWINF36.zip">36. BWINF - complete solutions - download</a><br>
<a class="link" id="t" href="BWINF35.zip">35. BWINF - some solutions - download</a><br>
<a class="link" id="t" href="BWINF34.zip">34. BWINF - almost nothing - download</a><br>
<h3>Model Creator</h3>
<a id="t">An useful application for creating blocky 3D-Models of depthmaps. Download, execute and use !</a></br>
<a id="t">Hope it helps !</a></br>
<a id="t">This one is only available in English.</a></br>
<a id="u">Screenshots : </a></br>
<input type="image" class="bild" id="model_advertisement1" data-title="Unnamed" data-description="No description available." src="http://forum.minetest.net/download/file.php?mode=view&id=13396" onclick="show_image_popup(this.id);"></input>
</br>
<input type="image" class="bild" id="model_advertisement2" data-title="Unnamed" data-description="No description available." src="http://forum.minetest.net/download/file.php?mode=view&id=13397&sid=f9f6a94a9cd4b622d90944c130ed5a7a" onclick="show_image_popup(this.id);"></input>
</br>
<a id="u">Forum Thread : </a></br>
<a class="link" id="t" href="https://forum.minetest.net/viewtopic.php?f=14&t=18780">Model Creator Forum Thread</a><br>
<a id="u">Download : </a></br>
<a class="link" id="t" href="https://forum.minetest.net/download/file.php?id=13425">Model Creator Download</a><br>
<h3>Schematic Creator</h3>
<a id="t">An useful application for creating schematics/buildings out of blueprints in a Minetest world. Download, execute and use !</a></br>
<a id="t">Hope it helps !</a></br>
<a id="t">Also in English.</a></br>
<a id="u">Screenshot : </a></br>
<input type="image" class="bild" id="s_advertisement1" data-title="Unnamed" data-description="No description available." src="https://forum.minetest.net/download/file.php?mode=view&id=13321&sid=37968944da7cbeadd96607818f5001ed" onclick="show_image_popup(this.id);"></input>
</br>
<a id="u">Forum Thread : </a></br>
<a class="link" id="t" href="https://forum.minetest.net/viewtopic.php?f=14&t=18992">Schematic Creator Forum Thread</a><br>
<a id="u">Download : </a></br>
<a class="link" id="t" href="https://forum.minetest.net/download/file.php?id=13323">Schematic Creator Download</a><br>
<h3>Colorful Library</h3>
<a id="t">A Minetest library which aims at making Minetest more colorful.</a></br>
<a id="t">May be useful !</a></br>
<a id="u">Screenshots : </a></br>
<input type="image" class="bild" id="c_advertisement2" data-title="Unnamed" data-description="No description available." src="http://forum.minetest.net/download/file.php?mode=view&id=13354" onclick="show_image_popup(this.id);"></input>
</br>
<a id="u">Forum Thread : </a></br>
<a class="link" id="t" href="https://forum.minetest.net/viewtopic.php?f=9&t=19010">Colorful Library Forum Thread</a><br>
<a id="u">Download : </a></br>
<a class="link" id="t" href="https://github.com/appgurueu/colorful/tree/master">Colorful Library Download on GitHub</a><br>
<h3>Baubles Mod</h3>
<a id="t">A Mod for Minetest based on Colorful, adding many colorful baubles with many different themes.</a></br>
<a id="t">Merry christmas !</a></br>
<a id="u">Screenshots : </a></br>
<input type="image" class="bild" id="d_advertisement2" data-title="Unnamed" data-description="No description available." src="https://forum.minetest.net/download/file.php?mode=view&id=13421&sid=e9302f697f9419ad34b6386e860fe677" onclick="show_image_popup(this.id);"></input>
</br>
<a id="u">Forum Thread : </a></br>
<a class="link" id="t" href="https://forum.minetest.net/viewtopic.php?f=9&t=19109">Baubles Mod Forum Thread</a><br>
<a id="u">Download : </a></br>
<a class="link" id="t" href="https://github.com/appgurueu/baubles">Baubles Mod Download on GitHub</a><br>
<h3>Fractal-Suite</h3>
<a id="t">Kind of a full-version of the online Fractal-Viewer. Download, execute and enjoy !</a></br>
<a id="t">Try it out : It comes with a bunch of features !</a></br>
<a id="t">Unfortunately, it's only available in German.</a></br>
<a id="u">Screenshots : </a></br>
<input type="image" class="bild" id="e_advertisement2" data-title="Unnamed" data-description="No description available." src="fractal_screenie.png" onclick="show_image_popup(this.id);"></input>
</br>
<a id="u">Download : </a></br>
<a class="link" id="t" href="http://clara-online.de/images/Mathe/Ergaenzungskurs/FraktaleGeometrie_20152016/Fraktal-Suite.jar">Fractal-Suite Download</a><br>
<h3>Planetary Movement Simulation in 3D</h3>
<a id="t">A Planetary Movement Simulation in 3D. Featuring many ways to interact with your solar system, such as creating and deleting planets, seting velocities, etc. You are in control ! Also, it always saves your progress if you exit !</a></br>
<a id="t">Please give it a try.</a></br>
<a id="t">Unfortunately, it's also only available in German.</a></br>
<a id="u">Screenshots : </a></br>
<input type="image" class="bild" id="e_advertisement2" data-title="Unnamed" data-description="No description available." src="capture08.07.2017 19_20_02_1.jpg" onclick="show_image_popup(this.id);"></input>
</br>
<a id="u">Downloads : </a></br>
<a id="t" class="link" href="Planetenbewegungssimulation_Windows_i586.zip">Windows i586</a><br>
<a id="t" class="link" href="Planetenbewegungssimulation_Windows_amd64.zip">Windows amd64</a><br>
<a id="t" class="link" href="Planetenbewegungssimulation_Linux_i586.zip">Linux i586</a><br>
<a id="t" class="link" href="Planetenbewegungssimulation_Linux_amd64.zip">Linux amd64</a><br>
<h3>Online Fractal-Viewer</h3>
<a id="t">A little Fractal-Viewer I created once. Enjoy !</a></br>
<a id="t">Controls : Mouse Wheel to Move and Zoom, Left Mouse Button to switch Julia/Mandelbrot, Right Mouse Button to add extra iters. Note : Only works well in Google Chrome. If you want a lag and bug-free application with more features, get my Fractal-Suite.</a>
<canvas id="myCanvas" width="800" height="600" style="border:1px solid #d3d3d3;margin:10%">
<script>
function ComplexNumber(rpart,ipart) {
this.rpart=rpart;
this.ipart=ipart;
}
function bs(cn) {
var a = (cn.rpart*cn.rpart) + (cn.ipart*cn.ipart) ;
var betrag = Math.sqrt(a);
return betrag ;
}
function erzeugeplus(that,other){
var wert1=that.rpart+other.rpart;
var wert2=that.ipart+other.ipart;
return new ComplexNumber(wert1,wert2);
}
function erzeugemal(that,other){
var wert1=that.rpart * other.rpart - that.ipart * other.ipart ;
var wert2=that.rpart * other.ipart + that.ipart * other.rpart ;
return new ComplexNumber(wert1,wert2) ;
}
function hoch(that,iters,other){
var cn=(erzeugemal(that,other)) ;
if (iters > 2) {
for (i=0; i<iters-1; i++) {
cn=erzeugemal(cn,cn) ;
}
}
return cn;
}
function iter(that,iters,other){
var cn=(erzeugemal(that,other)) ;
if (iters > 0) {
for (i=0; i<iters-1; i++) {
cn=erzeugemal(cn,other) ;
}
}
return cn ;
}
//function update() {
var c = document.getElementById("myCanvas");
var mouseX=0;
var mouseY=0;
var zoomed=100;
var moveX=0;
var moveY=0;
var mode=2;
var m=1;
/*function relPos(evt) {
var r=c.getBoundingClientRect();
return {x:evt.clientX-rect.left,y:evt.clientY-rect.top};
}
function processMove(evt) {
var p=relPos(evt);
mouseX=p.x;
mouseY=p.y;
}*/
function mouseMove(e)
{
if(e.offsetX) {
mouseX = e.offsetX;
mouseY = e.offsetY;
}
else if(e.layerX) {
mouseX = e.layerX;
mouseY = e.layerY;
}
}
function mWheel(e) {
mouseMove(e);
zoomed+=e.wheelDelta/480;
moveX+=(e.wheelDelta/480)*((mouseX-400)/4000);
moveY+=(e.wheelDelta/480)*((mouseY-300)/3000);
//zoomed+=1;
}
function mClick(e) {
mode+=1;
}
function mRightClick(e) {
if (m != 1) {
m++;
}
else {
m=0;
}
return true;
}
c.oncontextmenu=mRightClick;
c.addEventListener('onmousemove', mouseMove, false);
var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel"
//c.attachEvent(mousewheelevt,mWheel);
c.addEventListener(mousewheelevt, mWheel, false);
c.addEventListener("click",mClick);
//var colors=new Array();
//var m = document.getElementById("mandelbrot");
var ctx = c.getContext("2d");
var gr = ctx.createImageData(800,800);
//var mchecked=m.checked;
var w=800;
var h=600;
var cc=new ComplexNumber(0.7,0.3);
function drawPixel(x,y,r,g,b) {
i=(x+y*gr.width)*4;
var d=gr.data;
gr.data[i]=r;
gr.data[i+1]=g;
gr.data[i+2]=b;
gr.data[i+3]=255;
}
function eval_mbm(x, y, zoom, resx, resy, type,movex,movey){
for(xs=0; xs<resx; xs++) {
for(ys=0; ys<resy; ys++) {
var z = new ComplexNumber(0.0,0.0) ;
var c = new ComplexNumber(((xs-(resx/2.0))/zoom)+movex,((ys-(resy/2.0))/zoom)+movey) ;
var benoetigte_iterationen=0 ;
var iters=50;
while (true) {
benoetigte_iterationen += 1 ;
z=erzeugeplus(c,iter(z,type,z)) ;
var betrag = bs(z) ;
/*if (benoetigte_iterationen > 75) {
drawPixel(xs+x,ys+y,0,0,255);
break ;
}
if (betrag > 100.0) {
if (benoetigte_iterationen <= 18){
drawPixel(xs+x,ys+y,benoetigte_iterationen*3,benoetigte_iterationen*6,0);
}
if (benoetigte_iterationen > 18) {
drawPixel(xs+x,ys+y,0,benoetigte_iterationen*1.5,benoetigte_iterationen*3);
}
break ;
}*/
if (benoetigte_iterationen > iters) {
if (true) {
var ci=(betrag*2.4) ;
drawPixel(0,0,ci);
break ;
}
}
if (betrag > iters/18*100) {
if (benoetigte_iterationen <= iters/2){
drawPixel(int(benoetigte_iterationen*3),int(benoetigte_iterationen*6),0) ;
}
if (benoetigte_iterationen > iters/2) {
drawPixel(0,int(benoetigte_iterationen*1.5),int(benoetigte_iterationen*3)) ;
}
break ;
}
}
}
}
}
function eval_jm(wert1, x, y, zoom, resx, resy, type, movex, movey){
for(xs=0; xs<resx; xs++) {
for(ys=0; ys<resy; ys++) {
z = new ComplexNumber(0.0,0.0) ;
c = new ComplexNumber(((xs-(resx/2.0))/zoom)+movex,((ys-(resy/2.0))/zoom)+movey) ;
z = c ;
benoetigte_iterationen=0 ;
while (true) {
benoetigte_iterationen += 1 ;
z=erzeugeplus(wert1,iter(z,type,z)) ;
betrag = bs(z) ;
if (benoetigte_iterationen > 75) {
drawPixel(xs+x,ys+y,0,0,255);
break ;
}
if (betrag > 100.0) {
if (benoetigte_iterationen <= 18){
drawPixel(xs+x,ys+y,benoetigte_iterationen*3,benoetigte_iterationen*6,0);
}
if (benoetigte_iterationen > 18) {
drawPixel(xs+x,ys+y,0,benoetigte_iterationen*1.5,benoetigte_iterationen*3);
}
break ;
}
}
}
}
}
for (x=0; x < gr.width; x++) {
for (y=0; y < gr.height; y++) {
drawPixel(x,y,0,0,0);
}
}
ctx.putImageData( gr, 0,0 );
ctx.stroke();
function getGUIVars() {
return {};
}
function update() {
for (x=0; x < gr.width; x++) {
for (y=0; y < gr.height; y++) {
drawPixel(x,y,0,0,0);
}
}
if (m==0) {
eval_mbm(0,0,zoomed,800,600,mode,moveX,moveY);
}
if (m==1) {
eval_jm(cc,0,0,zoomed,800,600,mode,moveX,moveY);
}
ctx.putImageData( gr, 0,0 );
ctx.stroke();
}
setInterval(update, 5000);
//}
</script>
</html>
</div>
<!--<script>
function onhover(id) {
/*var maxsize=window.innerWidth;
maxsize*=0.55;
if (document.getElementById(id).naturalWidth < maxsize) {
var ratio=maxsize/document.getElementById(id).width;
document.getElementById(id).style.width=String(document.getElementById(id).naturalWidth*ratio)+"px";
document.getElementById(id).style.height=String(document.getElementById(id).naturalHeight*ratio)+"px";
}*/
}
function onaway(id) {
/*var maxsize=window.innerWidth;
maxsize*=0.55;
if (document.getElementById(id).naturalWidth < maxsize) {
document.getElementById(id).style.width=String(document.getElementById(id).naturalWidth)+"px";
document.getElementById(id).style.height=String(document.getElementById(id).naturalHeight)+"px";
}*/
}
function adjust_images() {
var maxsize=window.innerWidth;
maxsize*=0.8;
var imgs=document.getElementsByTagName('img');
for (i=0; i < imgs.length; i++) {
var image=imgs[i];
//alert(String(imgs[i].width)+"<"+String(maxsize));
if (imgs[i].width > maxsize) {
var ratio=maxsize/image.width;
ratio*=0.95;
image.style.width=String(ratio*100)+"%";
image.style.height=String(ratio*100)+"%";
//alert("1"+String(image.width));
//image.width=imgs[i].width*ratio;
//image.height=imgs[i].height*ratio;
}
/*else {
document.getElementById(id).style.width=String(document.getElementById(id).naturalWidth)+"px";
document.getElementById(id).style.height=String(document.getElementById(id).naturalHeight)+"px";
}*/
}
}
setInterval(adjust_images, 1000);
</script>-->
<div class="modal" id="modal1" style="display:none;">
<div class="modal-content" id="content">
<input type="button" class="close" onclick="disable_popup('modal1');" value="&times;"/>
<a>We've got to celebrate your <a id="visit_count">first</a> visit to this site !</br>
Please take a look at the gallery and the applications.</a>
</div>
</div>
<div class="modal" id="modal2" style="display:none;">
<div class="modal-content" id="content2">
<input type="button" class="close" onclick="disable_popup('modal2');" value="&times;"/>
<b><a style="font-size: 110%;" id="fullsizetitle"></a></b></br>
<a style="font-size: 90%" id="fullsizedescription"></a></br>
<img alt="Alt" id="fullsize" src=""/>
</div>
</div>
<script>
function show_image_popup(image_id) {
var im=document.getElementById(image_id);
document.getElementById("fullsizetitle").innerHTML=im.getAttribute("data-title");
document.getElementById("fullsizedescription").innerHTML=im.getAttribute("data-description");
document.getElementById("fullsize").src=im.src;
enable_popup("modal2");
}
function enable_popup(popup) {
document.getElementById(popup).style.display="block";
}
function disable_popup(popup) {
//document.getElementById(popup).innerHTML=document.getElementById("saved").innerHTML;
document.getElementById(popup).style.display="none";
}
function adjust_images(tagname) {
var maxsize=window.innerWidth;
maxsize*=0.8;
var imgs=document.getElementsByTagName(tagname);
for (i=0; i < imgs.length; i++) {
var image=imgs[i];
//alert(String(imgs[i].width)+"<"+String(maxsize));
if (imgs[i].width > maxsize) {
var ratio=maxsize/image.width;
ratio*=0.95;
image.style.width=String(ratio*100)+"%";
image.style.height=String(ratio*100)+"%";
//alert("1"+String(image.width));
//image.width=imgs[i].width*ratio;
//image.height=imgs[i].height*ratio;
}
}
}
function adjust_inputs() {
adjust_images("input");
}
function adjust_imgs() {
adjust_images("img");
}
function cookie() {
var cookie=document.cookie;
if (cookie==undefined) {
var v=new Date();
var d=new Date(v.getYear()+1, v.getMonth(), v.getDay(), v.getHours(), v.getMinutes(), v.getSeconds(), v.getMilliseconds());
cookie="visit=1;expires="+d.getUTCDate()+";";
enable_popup("modal1");
}
var split=cookie.split(";");
var access=split[0].split("=")[1];
access=Number(access);
if (access % 10 == 0) {
document.getElementById("visit_count").innerHTML=String(access)+".";
enable_popup("modal1");
}
access=access+1;
document.cookie="visit="+String(access);
}
setTimeout(cookie, 0);
setInterval(adjust_imgs, 2000);
setInterval(adjust_inputs, 2000);
</script>