Forma de saber se duas linhas se cruzam

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Forma de saber se duas linhas se cruzam

Mensagempor xirix » Sexta Nov 04, 2005 17:49

Boas,

Bom, ando com um problema que acho que é falta de dedicação à matemática (já foi à tanto tempo que não me lembro destas coisas)

Enfim, o meu problema é o seguinte. Tenho duas layers/span/divs numa página HTML. E quero saber se existe algum ponto/area em comum entre as duas. Ou seja, por exemplo, ter uma layers/span/divs a ocupar 100% da área visivél tanto em altura como largura. Depois tenho outra com um tamanho de 100px x 100px colocada num local qualquer da página. Como a outra está a ocupar 100% elas coincidem. Mas se ela não ocupar 100%, tiver um tamanho de 50px x 150px.

Já consegui sacar todos os vertices dos dois rectangulos, e fiz umas funções para verificar se um dos vertices está dentro da àrea do outro rectangulo. O problema é quando tenho dois rectangulos que se cruzam, mas nunca nenhum dos vertices está dentro da àrea do outro.

Estava a pensar em fazer mais umas funções para verificar se os segmentos de recta de cada rectangulo cruza com o do outro rectangulo.

Também pensei em fazer uns tantos fors para percorer todos os pontos possiveis entre cada vertice para verificar se esse ponto pertence ao outro rectangulo ou não, mas isto não é lá muito eficiente a nível de performance.

Alguém conhece uma fórmula que dê para isto??


Abraços
X|r|X
=================
Não subscrevam a VIANETWORKS, TVTel ADSL, ASDL.XL, CyclopNet. A VIA aldraba todos os seus clientes iludindo-os c/ velocidades q nunca tem na realidade. Uma ligação 1024/256 (128kB/32kB) na prática é de 6kB/4kB c/ o emule.
xirix
Membro de Ouro
Membro de Ouro
 
Mensagens: 673
Registado: Terça Out 05, 2004 21:07

Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 2 visitantes

cron