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>