PMG2022/Lukas/Endergebnis

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
<canvas w=600 h=600></canvas>

<code id="604cb2cdcbe50">
//Zeichnen von mathematischen Funktionen
//
var c = new Canvas(1);
c.clear(); // Zeichenfläche löschen

var t = new Turtle(1); // neuer Turtle auf Zeichenfläche 1

// Maßstab: 1 Einheit = 20px

t.home();
t.penColor(500,500,500);
t.backward(200);
t.penColor(0,0,0);
t.forward(200);
t.backward(300);
t.forward(100);
t.right(90);
t.forward(400);
t.backward(800);
t.forward(400);
t.left(90);


for (var i=1; i<20;i++)
{

t.forward(i*20);
t.right(90);
t.forward(5);
t.forward(-10);
t.forward(5);
t.left(90);

t.backward(i*20);}
t.right(90);

for (var j=1; j<20;j++)
{

t.forward(j*20);
t.right(90);
t.forward(5);
t.forward(-10);
t.forward(5);
t.left(90);

t.backward(j*20);}
t.left(180);

for (var k=1; k<20;k++)
{

t.forward(k*20);
t.right(90);
t.forward(5);
t.forward(-10);
t.forward(5);
t.left(90);

t.backward(k*20);}
t.right(-90);

for (var l=1; l<20;l++)
{

t.forward(l*20);
t.right(90);
t.forward(5);
t.forward(-10);
t.forward(5);
t.left(90);

t.backward(l*20);}
t.right(180);



// y=mx+n


function lineareFunktion (m,n) {
t.home();
t.backward(200);

var W=Math.atan2(m,1) *180/Math.PI

t.forward(n*20);
t.penColor(20,300,20);
t.penWidth(3);
t.right(90);
t.left(W);
t.forward(-2000);
t.forward(4000);

// x0

var x0=-n/m;
console.log("Nullstelle:" + x0 );

t.penColor(0,0,0);
t.penWidth(1);
}

// y=ax^2+q


function quadratischeFunktion (a,q){
t.home();
t.backward(200);

t.forward(q*20);
if (a>0){}else{t.right(180);}

t.penColor(300,20,20);
t.penWidth(3);
t.right(90);

for (var p=0;p<20;p++){

var h=(p+1)*(p+1)*a
var V=Math.atan2(h,p+1) *180/Math.PI
var d=Math.sqrt((p+1)*(p+1)+(p+1)*(p+1))

t.left(V);
t.forward(d*20);
t.right(V);
}

t.home();
t.penColor(0,0,0);
t.penWidth(1);
t.backward(200);

t.forward(q*20);
if (a>0){}else{t.right(180);}

t.penColor(300,20,20);
t.penWidth(3);
t.left(90);

for (var p=0;p<20;p++){

var h=(p+1)*(p+1)*a
var V=Math.atan2(h,p+1) *180/Math.PI
var d=Math.sqrt((p+1)*(p+1)+(p+1)*(p+1))

t.right(V);
t.forward(d*20);
t.left(V);
}



// x0


if (q==0){
console.log("Nullstelle:0");
}else if (q>=0 && a>=0){
console.log("Es gibt keine Nullstelle");
}else if (q<=0 &&a<=0){
console.log("Es gibt keine Nullstelle");
}else {
var D=q/a
var x01=- Math.sqrt(-D);
var x02=Math.sqrt(-D);
console.log("Nullstellen:" + x01 + "," + x02);
}

t.penColor(0,0,0);
t.penWidth(1);
}


// y=b*sinx+c

function Sinusfunktion(b,c){
t.home();
t.backward(200);
t.forward(c*20);
t.penColor(20,20,300);
t.penWidth(3);
t.right(90);
if (b==0){
console.log("b sollte nicht 0 sein");
}
var Q =Math.atan2(b,Math.PI/2) *180/Math.PI
var F=Math.sqrt(b*20*b*20+Math.PI*Math.PI/4*400)
t.left(Q);
t.forward(F);
var QQ= 180-(180-2*Q)

for (var r=0;r<20;r++){
t.right(QQ);
t.forward(2*F);
t.left(QQ);
t.forward(2*F);
}


t.penColor(0,0,0);
t.penWidth(1);

t.home();
t.backward(200);
t.forward(c*20);
t.penColor(20,20,300);
t.penWidth(3);
t.left(90);

t.left(Q);
t.forward(F);

for (var s=0;s<20;s++){
t.right(QQ);
t.forward(2*F);
t.left(QQ);
t.forward(2*F);
}


// x0

if (c>b){
console.log("Es gibt keine Nullstellen");
}
if (c==0){
console.log("Nullstellen: k*PI");
}
if (b-c==0 ){
console.log("Nullstellen: 3/2*PI+k*2PI");
}
if (b-c!==0){
console.log("DARAN ARBEITE ICH NOCH");

}
}
</code>

<run id="604cb2cdcbefb">
lineareFunktion(-0.5,4);
quadratischeFunktion(0.5,-2);
Sinusfunktion(3,2);
</run>