Jump to content


Photo

Barra De Rolagem Curva - Como Fazer?


  • Faça o login para participar
24 replies to this topic

#16 phmda

phmda

    Expert

  • Usuários
  • 590 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 16/11/2006, 00:31

TheRutz
tem como vc postar denovo esse exemplo ou mandar pro meu email pq não to conseguindo baixar, acho que não ta mais no ar o arquivo, num sei mas sevc tiver como me mandar agradeço muito cara..
vlwww

ph_pimp@hotmail.com
www.phmda.com.br

#17 sigur

sigur

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado

Posted 20/11/2006, 11:34

nossa, não sei nada de flash, mas fiquei curioso... tem como anexar aqui pra vermos?

quanto ao caminho, vocês podem usar a função seno pra ficar mais interessante. Como a idéia é de barra de rolagem, teria que ser x em função de y, ou seja, x=sin(y). Daí vocês podem usar outros parâmetros para deixar a curva mais ou menos 'torta', usando sin(2y) ou sin(y/2), etc.... ou também usar múltiplos 'fora' da função, ou seja, 2sin(y), sin(y)/2, etc....

vejam anexo.... até mais.
abraços

ps: no anexo, fiz y=f(x). rotacionem para ter x=f(y)

Attached Files

  • Attached File  1.jpg   16KB   10 downloads


#18 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 24/11/2006, 08:52

hmmm, interessante :)

Com a explicação de nosso matemático sigur :D

fiz a seguinte aplicação no Flash:

bola.onPress = function()
{
	this.startDrag();
	
	this.onEnterFrame = function()
	{
		this._x = Math.sin(this._y) * 5 + 200;
	}
}

bola.onRelease = function()
{
	this.stopDrag();
	
	delete this.onEnterFrame;
}

Aqui está a teorica da paradinha.

O 5 eu adicionei para aumentar a distância entre o ponto mais à esquerda e à direita. Pois, a função retorn um número entre -1 e 1, multiplicando por 5, a variação passa a ser de -5 e 5.

Só que, tentei dividir o _y dentro do seno para tentar suavizar a movimentação. Pois como podem ver, vai indo muito "aos trancos", pulando o _x em um curto espaço _y.

Qualquer novidade, volto a postar.


--------------
Puts puts puts, agora deu... estava dividindo por um numero muito baixo.

bola.onPress = function()
{
	this.startDrag();
	
	this.onEnterFrame = function()
	{
		this._x = Math.sin(this._y / 20) * 10 + 200;
	}
}

bola.onRelease = function()
{
	this.stopDrag();
	
	delete this.onEnterFrame;
}

-------------------
Então, fica assim agora a formula:

this._x = Math.sin(this._y / ALTURA_DA_CURVA) * DISTANCIA_ENTRE_OS_EXTREMOS + POSICAO_INICIAL;

Então, pra fazer algo assim )
Você precisa de uma grande altura, mas curta distância.

Algo como um S
Um altura baixa, mas grande distância.

Capitche?

B)

Attached Files


Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#19 sigur

sigur

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado

Posted 25/11/2006, 13:36

que legal que pude ajudar um pouco.

mas como advinhou que sou matemático??? ehehe

então, vc anexou o .fla.

tem como anexar o swf já pronto? eu não tenho o flash instalado e fiquei super cirioso pra ver a barra se movimentando. poderia mandar pra gente ver?

falow
abraços.

ps: o lance de fazer a mudança de variável dentro da função seno é uma boa jogada quando se quer aumentar ou diminuir o período.

#20 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 27/11/2006, 07:17

A única Matemática que conheço é a aplicada ao Flash, como não conhece Flash, só poderia ser matemático. Brincadeira, não desmereço essa ciência, pois é de extrema importância. Queria muito ter prestado mais atenção nas aulas, e não ter que procurar no Google a cada Plano Cartesiano que tenho que fazer :(

Enfim, aqui está um endereço publicado para ficar mais fácil:
http://www.fonix.com.br/_rolagem/
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#21 sigur

sigur

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado

Posted 27/11/2006, 12:08

cara, que legal.... gostei do lance da bolinha se mover sobre a curva... hehe

dá pra fazer com qualquer curva gerada por uma paremetrização? podemos brincar um pouco e usar curvas mais interessantes, como espiriais e tal...
mas essas não serviriam como barra de rolagem, apenas para brincar mesmo...

muito legal, se precisar de mais matemática, pode mandar..

#22 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 28/11/2006, 12:05

Também gostei muito dessa idéia, há um tempo atrás já tinha sido questionado sobre essa rolagem curvadinha, porém, não sabia como resolver :(

Vou realizar algumas alterações, e coloco aqui os resultados.

PS: Para simular uma espiral, teríamos que representar a dimensão da bola em função de x? :wacko:

Fiz a dimensão em função de Y, ficou ao contrário do que deveria ter ficado :)

http://www.fonix.com.br/_rolagem2/

-------------------------
News

Tentei fazer umas modificações na fórmula que estive usando, mas ai, ele fica "quicando" :(

Deixe-me explicar como estava:

100 - Math.abs(Math.sin(this._y / 50) * 60)

100 é a escala que eu desejo
Math.abc = retorna o absoluto do número, 50 = 50, -50 = 50.

O que eu faço, como a variação é de -60 à 60, quanto mais longe do centro, menor irá ficar a bola. Mas ela não está dando a volta por traz do eixo imaginário.

http://www.fonix.com.br/_rolagem3/
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#23 sigur

sigur

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado

Posted 28/11/2006, 19:42

nossa, que legal...

mas vc está tentando fazer ela rodar em torno de um eixo, dando a idéia de girar em 3 dimensões?

eu tinha pensado em fazer uma espiral plana, só pra ver o movimento, não pra usar como barra de rolagem.

nesse caso, a equação da espiral que serivira pra vc seria assim:
[2*cos(t),2*sin(t),3*t],t=0..3*Pi

veja o exemplo da curva rodando no cilindro

Attached Files



#24 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 29/11/2006, 06:33

Ahh, compreendi como seria a espiral que você comentou.

Talvez como efeito ela pudesse ser aplicada, já como uma barra de rolagem, acredito que complicaria, pois estaríamos alterando a posição Y também do objeto, o que já iria reposicionar o conteúdo em outro local.

Mas podemos fazer à título de testes (y)
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#25 Ritz

Ritz

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 04/11/2008, 19:53

Eu testei mais ele. Pra formas simples funciona melhor. Mas até esse "S" tá mais ou menos.


Tb estou precisando de uma barra de rolagem em c, mas não consigo baixar o anexo, alguém pode me ajudar?
Valeu!




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq