Jeg har netop svaret på et tilsvarende spørgsmål \"Parabel i Lingo\". Er sorthvidkat i din gruppe?
I kan bruge det samme script behavior med en lille modifikation. Brug jeres figur som sprite member i stedet for de 1 x 1 pixel member som jeg brugte til at tegne parabelen.
Desuden skal trails altid være off hvis i ikke vil have en grim streg skal følge figuren.
Den bevæger sig nok for hurtigt til jeres behov men det er nemt at sætte farten ned.
Skal det efterligne tyngdekraften er det også en god ide at standse, gentage bevægelsen som en bold der hopper... Men i må uddybe jeres ide lidt mere hvis jeg skal kunne gøre den \"natur tro\"
her er scriptene:
--draw parabola behavior---------------
property mySprite, screenWidth, screenHeight,a
global figur, xOffset, yOffset
on beginSprite me mySprite = me.spriteNum figur = me sprite(mySprite).trails = 0
a = 0.01 -- adjust to your own preference
--find screen limits
myMonitor = the DesktoprectList[1] screenWidth = the right of myMonitor screenHeight = the bottom of myMonitor end
on moveParabola me if voidP(xOffset) or voidP(yOffset) then exit --get ready set x = 0
repeat with x = 0 to screenWidth y = a* power((x - xOffset),2) + yOffset --limit check if (y < 0) or (y > screenHeight) then next repeat
sprite(mySprite).Loc = point(x,y) updateStage end repeat
anvend jeres figur som sprite member fks 1x 1 pixels
Du skal også bruge det næste movieScript for at definere hvor parabelens spids skal være:
--movieScript-----------------
global xOffset, yOffset, figur
on mouseUp --Der hvor du klikker bliver parabelens spids punkt xOffset = the mouseH yOffset = the mouseV if objectP(figur) then moveParabola figur end if
Spøg til side, Koden er opbygget omkring trails, loc, point, the MouseH, the mouseV. som man finder i Lingo Dictionary.
Min løsning er baseret på følgende tanker:
En parabel kan udtrykkes matematisk som
y = A * x^2
hvor A er en konstant du frit kan vælge og ændre på y aksens skalering.
Dette giver en parabel med \"spidsen\" ved (x,y) = (0,0).
Man kan flytte hele parabelen (eller enhver anden kurve) med (xOffset, yOffset) blot ved at erstatte
x -> x - xOffset y -> y - yOffset
Derfor bestemmer point(xOffset, yOffset) hvor spidsen er i parabelens mere generalle formel
y - yOffset = A * (x - xOffset)^2
Men det er nok ikke hvad du ville høre..... Hvis man slår op under trails i Lingo Dictionary står der blot et eller nogle få eksempler på dets anvendelses muligheder. Prøv at lege lidt med den og jeg er ganske sikker på at du vil hurtigt kunne komme i tanke om en snes vidt forskellelige nye muligheder. Ligeledes med de andre kommandoer.
Forestil dig så hvor mange forskellige muligheder der opstår når man begynder at kombinere flere lingo kommandoer! Jeg kan faktisk ikke komme i tanke om én eneste ting man ikke kan udføre i Lingo, kun nogle ting der er mere krævende end andre.
Når jeg har en konkret opgave som skal løses tænker jeg ikke i Lingo. Fks. med Jeres spørgsmål:
1. Hvad er en parabel? 2. Hvilke egenskaber har den? 3. Hvordan kan den representeres.
Når jeg så svarer på disse spørgsmål har jeg også fundet én måde at takle en større opgave i mindre dele. Jeg fortsætter blot den samme process indtil alle dele er i Lingo-kommando størrelse:
Svar 1. Kurve... en samling af punkter = en masse statiske sprites eller 1 sprite bevæger sig til flere punkter(animation)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.