CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Sin und Cos

Nach unten 
+8
Mozart
Dragonclonk
Simsi
Clonkzerhechsler
Höfi
trike994
Masterfox
Plueschtroll
12 verfasser
AutorNachricht
Plueschtroll
Clonk
Clonk



Anmeldedatum : 08.08.08

Sin und Cos Empty
BeitragThema: Sin und Cos   Sin und Cos EmptySa Jan 03, 2009 10:24 pm

Hallo erstmal Smile.
ACHTUNG!Dieses Tutorial ist mein erstes.Ich werde es noch mehrmals überarbeiten müssen,damit es besser verständlich ist.Rückmeldungen, was ich verbessern sollte, sind erwünscht.

Schwierigkeit Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven

In diesem Tutorial erkläre ich euch, wie man so einen Kreis, mittels Sinus und Cosinus, in die Landschaft zeichnet.Wer sich für Sinus und Cosinus interessiert und fit in Mathematik ist sollte den Wikipedia-Artikel lesen.Für alle anderen erkläre ich kurz was die "Funktionen" Sinus und Cosinus machen.

Als erstes zu den Argumenten die "Sin" und "Cos" brauchen,die Argumente sind bei beiden gleich.Das erste Argument "iAngel" gibt einen Winkel an,das zweite "iRadius" die Größe eines Kreisradius(das ist die Hälfte vom Durchmesser eines Kreises).Anhand dieser Argumente wird eine Zahl berechnet,wie zeigt dieser Graph.Obenlinks sehen wir den Winkel,links Sinus und unten Cosinus."Sin" und "Cos" berechnen nun aus dem Winkel die am Rand angezeigte Zahl.Bei 90°Grad gibt "Sin" also 1 und "Cos" 0 aus, bei 0°Grad ist es umgekehrt.Diese Zahl wird dann mit dem zweiten Argument multipliziert und das Ergebnis dann zurückgegeben.
Was bringt das überhaupt?
Mit Sin und Cos kann man Kreise erstellen.Denn die beiden Funktionen liefern einen anährenden Kreis wenn man sie für ganz viele Winkel berechnet.



So jetzt wissen wir wie Sin und Cos funktionieren und können damit einen Kreis erstellen.
Als erstes brauchen wir einen Funktionskopf:
Zitat :
global func DigFreeCircle(int iX,int iY,int iXRadius,int iYRadius,int iCircleLenght,int iPixel)
Das "global" zeigt,dass der Script überall verfügbar ist, genauso wie die normalen Funktionen z.B. "CreateObject"."func" steht für Funktion.In den Klammern stehen die Argumente,das int vor allen Argumenten zeigt das es alles "Integer" also Ganzzahlen sind,das 'i' kennzeichnet die einzelnen Argumente nochmals als Ganzzahl um die Übersicht zu verbessern.
Zitat :
{
var iSin,iCos;
for(var ih; ih < iCircleLenght;ih++)
{
Erstellt drei (noch) leere Behälter,mit den Namen "iSin","iCos" und "ih".Wie wir (hoffentlich Wink )gelernt haben steht das 'i' für eine Ganzzahl.Ausserdem startet eine "for" Schleife,die solange durchlaufen wird wie "ih" kleiner ist als iCircleLenght.Die Aufgabe der Schleife ist es, in einzelnen Stücken einen Kreis in die Landschaft zu graben."ICircleLenght" gibt dabei die Größe des Kreises in einem Winkel an,360 wäre ein ganzer Kreis,180 ein halber,90 ein viertel etc.
Zitat :
iSin = Sin(ih,iXRadius);
iCos = Cos(ih,iYRadius);
Weißt den Behältern "iSin" und "iCos" einen Wert zu."iSin" bekommt dabei den 'X' Wert eines Punktes auf der Kreisbahn und "iCos" den dazugehörenden 'Y' Wert.
Zitat :
DigFreeRect((iX+iSin),(iY+iCos),iPixel,iPixel);
}
}
Die eigentliche Funktion.DigFreeRect gräbt eine bestimmte Position frei.Das erste und zweite Argument geben die Position an wo etwas freigegraben werden soll.Wir haben dort, die gespeicherte Position der Kreisbahn in "iSin" und "iCos" + der Position von der linken, oberen Kartenecke in "iX" und "iY" eingesetzt.Der dritte und vierte Parameter geben die Seitenlängen des freigegrabenen Recktecks an.Dort haben wir "iPixel" eingesetzt.

Nochmal der gesamte Code:
Zitat :
global func DigFreeCircle(int iX,int iY,int iXRadius,int iYRadius,int iCircleLenght,int iPixel)
{
var iSin,iCos;
for(var ih; ih < iCircleLenght;ih++)
{

iSin = Sin(ih,iXRadius);
iCos = Cos(ih,iYRadius);

DigFreeRect((iX+iSin),(iY+iCos),iPixel,iPixel);
}
}
Nach oben Nach unten
Masterfox
General
General
Masterfox


Männlich Alter : 30
Anmeldedatum : 11.11.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptySa Jan 03, 2009 10:34 pm

wow, erstmal respekt Sin und Cos A035

Ich(und bestimmt viele andere werden es sich zwar wenn wir es anwenden möchten) noch ein/zwei-mal durchlesen, aber es ist meineserachtens ziemlich verständlich^^

Aber wirklich ziemlich gut, besonders die links gefallen mir Wink
Nach oben Nach unten
trike994
Konteradmiral
Konteradmiral



Männlich Alter : 30
Anmeldedatum : 10.12.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptySa Jan 03, 2009 10:50 pm

jep, is doch eig. noch einigermaßen verständlich Very Happy
Nach oben Nach unten
Höfi
SFT
SFT
Höfi


Männlich Alter : 29
Anmeldedatum : 20.10.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptySa Jan 03, 2009 11:18 pm

Sin und Cos wollt ich eigentlich immer meiden, doch jetzt schau ichs mir doch mal an.
Nach oben Nach unten
Clonkzerhechsler
Oberst
Oberst
Clonkzerhechsler


Männlich Alter : 28
Ort : Apenburg
Anmeldedatum : 29.12.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptySo Jan 04, 2009 12:04 pm

Reife Leistung echt Hammer cheers cheers cheers cheers cheers
Nach oben Nach unten
Simsi
Staatssekretär
Staatssekretär
Simsi


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 30.03.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptySo Jan 04, 2009 3:53 pm

also sinus und cosinus zu erklären, so dass mans versteht hätt ich auch nicht besser machen können.
vllt dazu noch tan(), falls man das denn überhaupt irgendwo braucht (vllt im zusammenhang mit den TRI - xy szenarien)
Nach oben Nach unten
Dragonclonk
Kadett
Kadett
Dragonclonk


Männlich Alter : 31
Ort : Lübeck
Anmeldedatum : 11.12.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptySo Jan 04, 2009 9:40 pm

Schönes Tutorial. Cool
Aber die Schwierigkeitsstufe ist vllt etwas zu hoch angesetzt.
Nach oben Nach unten
Mozart
Kanzler
Kanzler
Mozart


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 24.02.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptyMo Jan 05, 2009 12:12 am

du findest es müsste weniger als Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven sein?
solange es nichts komplizierteres gibt würd ich des so lassen
Nach oben Nach unten
http://www.funamfag.de
Umezawa
Feldmarschall
Feldmarschall



Männlich Alter : 29
Anmeldedatum : 30.12.08

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptyDi Jan 20, 2009 11:36 pm

Endlich hab auch ich das mit sin, cos und tan verstanden Idea Danke! Very Happy
Nach oben Nach unten
Fredi333
Clonk
Clonk
Fredi333


Männlich Alter : 28
Ort : Rostock
Anmeldedatum : 06.05.09

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptySa Jun 06, 2009 4:40 pm

Ich kann wirklich nur allen zustimmen das mit den links ist cool aber ein link zur doku wäre gut (natürlich auch bei zukünftigen tuts) Very Happy
Nach oben Nach unten
http://www.klick-mich-blos-nicht.de.vu
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptyDi Jul 07, 2009 2:18 pm

Was noch sinnvoll wäre wenn auch noch erklärt wird wie man mit Sin und Cos Winkel und Drehungen in entsprechende Bewegungen umsetzten kann. Auch die Umkehrfunktionen könnten noch beschrieben werden da sie in der Doku relativ unklar sind.
Nach oben Nach unten
Pitri
Feldmarschall
Feldmarschall
Pitri


Männlich Alter : 30
Ort : Karlsruhe
Anmeldedatum : 02.03.09

Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos EmptyMo März 22, 2010 8:38 pm

Extremclonk schrieb:
Was noch sinnvoll wäre wenn auch noch erklärt wird wie man mit Sin und Cos Winkel und Drehungen in entsprechende Bewegungen umsetzten kann.

Ha!Da hab ich vor kurzem was gemacht! Das ist mir aus heiterem Himmel eingefallen, als ich über den Einheitskreis nachgedacht habe: Ein Papierflieger, der Rotieren kann!

Code:
/*-- Papierflieger --*/

#strict 2

local FlySpeed;

func Launch(int iAngle, int iRotateDir, int iSpeed)
{
  if(!iAngle)      iAngle = Random(360);
  if(!iRotateDir)  iRotateDir = RandomX(10,50);
  if(!iSpeed)      iSpeed = 100;
  FlySpeed = iSpeed;

  if(Contained())
    Exit(this,0,0,iAngle,Cos(iAngle-90,iSpeed),Sin(iAngle-90,iSpeed),iRotateDir);
  else
  {
    SetXDir(Cos(iAngle-90,iSpeed));
    SetYDir(Sin(iAngle-90,iSpeed));
    SetRDir(iRotateDir);
    SetR(iAngle);
  }
  AddEffect("Flying",this,10,1,this);
  return(1);
}

func FxFlyingTimer()
{
  SetXDir(Cos(GetR()-90,FlySpeed));
  SetYDir(Sin(GetR()-90,FlySpeed));
  return(1);
}

FxFlyingTimer() sorgt dafür, dass er immer in die Rotationsrichtung fliegt Very Happy
Nach oben Nach unten
http://www.clonk-fanpage.lima-city.de
Gesponserte Inhalte





Sin und Cos Empty
BeitragThema: Re: Sin und Cos   Sin und Cos Empty

Nach oben Nach unten
 
Sin und Cos
Nach oben 
Seite 1 von 1

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Fortgeschrittene :: Tutorials-
Gehe zu: