Autor | Zpráva | ||
---|---|---|---|
Radovan789 Profil * |
#1 · Zasláno: 4. 12. 2010, 15:57:42
Mám tento kód:
var car_speed = 0; var car_max_speed = 4; var car_fps = 1000; for (var i = 0; i<=car_fps; i++) { var speed = Math.round((car_max_speed*(i/car_fps)*100))/100; setTimeout("change_speed("+speed+")", Math.sqrt(i*car_fps)); } } Soustřeďmě se jen na čas u settimeout, tedy Math.sqrt(i*car_fps) . Tento kód nám spůsobí že pohyb bude pomalu zrychlovat. Jenže až cyklování skončí tak se to zastaví na speed = 4. Já bych potřeboval upravit Math.sqrt(i*car_fps) tak aby ze začátku pomalu zrychlovala a ke konci spomalovala. Takže bych chtěl poradit se sestrojením vzorce. Předem děkuji za odpoveďi. |
||
Radovan789 Profil * |
#2 · Zasláno: 4. 12. 2010, 16:30:07
Abych to upřesnil:
V toto chvílí to funguje podobně jak OBR 1, a já bych potřeboval to udělat tak aby to fungovalo jak OBR 2. |
||
_es Profil |
#3 · Zasláno: 4. 12. 2010, 16:50:17
Radovan789:
Matematiku (fyziku) snáď v škole nemáš? Vôbec sa mi nechce vymýšľať a domýšľať ako ti ten divný kód funguje. Tak tú rýchlosť najprv na začiatku zvyšuj, potom nejaký čas nemeň a potom znižuj, v čom je problém? Funkcie setTimeout používaš nedoporučovaným spôsobom. „Abych to upřesnil:“ Tým si nič neupresnil, čo je na osi x a čo na osi y? Aká to je funkcia? |
||
Radovan789 Profil * |
#4 · Zasláno: 4. 12. 2010, 16:57:53
Tým si nič neupresnil, čo je na osi x a čo na osi y? Aká to je funkcia?
Na ose X je čas a na ose Y rychlost. Funkce je: odmocnina z (čas * maximalni_rychlost), podle toho funguje OBR 1. Tak tú rýchlosť najprv na začiatku zvyšuj, potom nejaký čas nemeň a potom znižuj, v čom je problém? Problém je asi vtom že nevím jak, asi ti to víc páli když tě to hned napadne, tak by ses semnou mohl podělit. Matematiku (fyziku) snáď v škole nemáš? Ale jo, jenže tam sme ještě sinusoidu nedělaly. (teda pokud je potřeba) |
||
_es Profil |
#5 · Zasláno: 4. 12. 2010, 17:14:20
Radovan789:
No tak si to rozdeľ na dve časti a pre každú daj inú funkciu. To je dosť ťažko radiť niekomu s takými medzerami v základných veciach. |
||
Radovan789 Profil * |
#6 · Zasláno: 4. 12. 2010, 17:37:42
No tak si to rozdeľ na dve časti a pre každú daj inú funkciu.
To mě taky napadlo, dokonce jsem to udělal a začal jsem experimentovat. Jenže pořád mě ta druhá funkce nevychází. To je dosť ťažko radiť niekomu s takými medzerami v základných veciach. Za pokus to stojí. |
||
Darker Profil |
#7 · Zasláno: 4. 12. 2010, 18:39:04 · Upravil/a: Darker
Radovan789:
„sinusoidu To neni sinusoida. Tady máš sinusoidu. V určité chvíli začni snižovat hodnotu, která se přidává k rychlosti. Tu bys měl mít jako proměnnou. |
||
Radovan789 Profil * |
#8 · Zasláno: 4. 12. 2010, 19:47:56
Darker:
Jestli se nepletu tak je to část sinusoidy, a na ty jednotloví části existují funkce (vzorce). Jenom ten jeden vzoreček kterej potřebuju bych potřeboval, vím že to patří spíš do matematického fóra ale pokud by mi pomohl někdo tady tak bych byl rád. |
||
Darker Profil |
#9 · Zasláno: 4. 12. 2010, 19:53:55
Pleteš se.
|
||
yFang Profil |
#10 · Zasláno: 4. 12. 2010, 19:54:42
Radovan789:
Předpokládám že potřebuješ: f: y = sin(x - π/2) +1 V definičním oboru <0;π> |
||
Darker Profil |
#11 · Zasláno: 4. 12. 2010, 20:02:44
yFang:
Jeho funkce byla víc prohnutá. Funkce sinus pokud vím nikdy není prohnutá dovnitř. (pro matematiky: nikdy není konvexní a zároveň stoupající. A míním tu prostou funkci sinus.) |
||
Keeehi Profil |
#12 · Zasláno: 4. 12. 2010, 20:22:30 · Upravil/a: Keeehi
Darker:
A v intervalu <3 π /2;2π >?
|
||
_es Profil |
#13 · Zasláno: 4. 12. 2010, 20:37:31 · Upravil/a: _es
Darker:
„Jeho funkce byla víc prohnutá“ Ale v hrubých rysoch to sedí. Radovanovi789 asi ani nejde o sínusoidu, ale skôr o požiadavku: napíšte mi rovnicu, nejakej, hocijakej, funkcie, ktorej graf som si nakreslil na papier. „nikdy není konvexní a zároveň stoupající. A míním tu prostou funkci sinus.“ Ale je, napríklad v intervale (-π/2; 0) .
|
||
yFang Profil |
#14 · Zasláno: 4. 12. 2010, 21:05:42
Darker:
Bral jsem to jako náčrt goniometrické funkce, jejíž graf potřebuje. Ta funkce co jsem napsal vypadá takhle: |
||
Radovan789 Profil * |
#15 · Zasláno: 4. 12. 2010, 21:39:56
yFang:
Děkuji za upřesnění mého požadavku. V definičním oboru <0;π> y = <0;π> nebo x = <0;π> ? |
||
Radovan789 Profil * |
#16 · Zasláno: 4. 12. 2010, 21:43:06
Ale podle toho grafu to asi bude x = <0;π>
|
||
yFang Profil |
#17 · Zasláno: 4. 12. 2010, 21:55:47
Radovan789:
x ∈ <0;π> |
||
Radovan789 Profil * |
#18 · Zasláno: 4. 12. 2010, 22:02:48
Momentálně to časování vypadá takhle:
(Math.sin(Math.PI*(i/1000) - Math.PI/2) +1)*1000 i = <0; 1000> (cykluje se) Pořád ten konec není spomalující se. Příklady: i = 0 výsledek = 0; i = 125 výsledek = 76.120; i = 250 výsledek = 292.893; i = 500 výsledek = 1000; i = 750 výsledek = 1707.107; i = 875 výsledek = 1923.879; i = 1000 výsledek = 2000; Podle mezivýpočtů by to mělo fungovat jak chci, ale v reálu to pořád vůbec není plynulé. |
||
Radovan789 Profil * |
#19 · Zasláno: 4. 12. 2010, 22:11:14
Možná jsem zjstil problém, za začátku je to rychlé, uprostřed nejpomalejší, a ke konci zase rychlé. Správně by mělo být ze začátku pomalé, uprostřed nejrychlejší, nakonci pomalé.
|
||
yFang Profil |
#20 · Zasláno: 4. 12. 2010, 22:13:41
Radovan789:
Hele a co se snažíš udělat? Co by mělo být rychlé/pomalé? |
||
Radovan789 Profil * |
#21 · Zasláno: 4. 12. 2010, 22:16:57
yFang:
Rovnoměrný akcelerační pohyb autíčka z plynulým startem a koncem. (Math.sin(Math.PI*(i/1000) - Math.PI/2) +1)*1000 slouží k výpočtu času kdy se aktivuje settimeout. |
||
Radovan789 Profil * |
#22 · Zasláno: 4. 12. 2010, 22:25:15
|
||
Radovan789 Profil * |
#23 · Zasláno: 4. 12. 2010, 22:27:01
Pro aktivaci autíčka zmáčkněte šipku dopředu.
|
||
_es Profil |
#24 · Zasláno: 4. 12. 2010, 22:39:36 · Upravil/a: _es
Radovan789:
„Rovnoměrný akcelerační pohyb autíčka z plynulým startem a koncem.“ To by mala byť snáď rýchlosť na konci nulová a nie podľa toho grafu, čo si načmáral. Asi nejde v tých grafoch o rýchlosť ale o dráhu, či nie? Skús si niekde pozrieť čo je rýchlosť a zrýchlenie a ako sa z nich ráta dráha v závislosti od času, v tom skripte to dobre určite nemáš. |
||
Radovan789 Profil * |
#25 · Zasláno: 4. 12. 2010, 22:44:32
_es:
rychlost je dráha za určitý čas. Vtom scriptě se nahoře ukazuje rychlost, od 0 do 4, alespoň by to tak být mělo. |
||
_es Profil |
#26 · Zasláno: 4. 12. 2010, 22:46:58 · Upravil/a: _es
Radovan789:
„rychlost je dráha za určitý čas.“ Áno, a z tej rýchlosti a z času v tom skripte zle rátaš celkovú dráhu. V tej tvojej definícii ide o priemernú rýchlosť. |
||
Radovan789 Profil * |
#27 · Zasláno: 4. 12. 2010, 22:52:34
Jo jenže už vtom mám velký zamtek, možná jsem se pustil do něčeho na co nemám ale až bude řešení správné tak to na pochopení nebude problém. Vůbec netuším co bych tam měl teďka upravovat.
|
||
yFang Profil |
#28 · Zasláno: 4. 12. 2010, 22:56:36
Radovan789:
Abych to shrnul, jde ti o to, aby auto plynule zrychlilo a plynule zpomalilo? |
||
Radovan789 Profil * |
#29 · Zasláno: 4. 12. 2010, 22:57:21
yFang:
Ano, přesně tak. |
||
Radovan789 Profil * |
#30 · Zasláno: 4. 12. 2010, 22:58:40
yFang:
Vlastně ne, chci aby plynule zrychlylo a pak mělo stálou rychlost (4 jednotky) ale aby to bylo plynulé. |
||
Téma pokračuje na další straně.
|
0