Rita cirklar som man ska "klippa" i när de överlappar varandra

Här diskuteras programmering och utveckling
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av Victor »

Istället för att sitta och vänta på ett svar på de ställen jag frågat så var jag lite produktiv och gjorde en bild som jag hoppas kan hjälpa er att hjälpa mig, för mig hjälper den inte speciellt mycket just nu.. :'(

[img width=393 height=377]http://img263.imageshack.us/img263/9308 ... ordsb1.gif[/img]
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av Victor »

Var inte bilden till hjälp för någon, så de kan hjälpa mig? :)
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av Victor »

Jag har nu löst det. Eller rättare sagt en annan på ett annat forum och han skriver såhär:
Om cirkelns mittpunkt är (x0, y0) så får du vinkeln v till punkten (x, y) genom att skriva v = atan2(y - y0, x - x0). (Vinkeln ges i radianer.)
Jag har fått modifiera det genom att skriva v = 360 - atan2(y - y0, x - x0) så att det funkar i alla fall. Så nu vet ni det :)

Jag länkar till bilden som jag genererat genom dessa tillämpningar så ni alla ser hur snyggt det blir, men också ett problem som jag hoppas kunna lösa.

http://img101.imageshack.us/my.php?imag ... ectze3.jpg

Just nu när tre stycken cirklar korsar varandra så blir det som ni ser. Att måla upp dem i annan ordningsföljd hjälper inte så jag hoppas på hjälp/tips här.
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av Victor »

Alla tips är välkomna för att hjälpa mig! :)
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
upnorth
Inlägg: 7100
Blev medlem: 14 jun 2007, 19:43
OS: Linux Mint
Ort: Oslo

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av upnorth »

Victor skrev: Alla tips är välkomna för att hjälpa mig! :)
Ja du, det verkar som om du måste skriva om koden för att den ska kunna ta hänsyn till att 3 eller fler ringar överlappar varandra. Hur det ska gå till vet jag inte.
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av Victor »

mm :(:(

en grej kan vara att räkna ut var de tre skär varandra/mittpunkten som i denna bild:
[img width=216 height=225]http://img411.imageshack.us/img411/7007/punktks3.png[/img]

och sedan måla över den lilla bit som stycker ut på något sätt?
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
upnorth
Inlägg: 7100
Blev medlem: 14 jun 2007, 19:43
OS: Linux Mint
Ort: Oslo

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av upnorth »

Victor skrev: mm :(:(

en grej kan vara att räkna ut var de tre skär varandra/mittpunkten som i denna bild:
[img width=216 height=225]http://img411.imageshack.us/img411/7007/punktks3.png[/img]

och sedan måla över den lilla bit som stycker ut på något sätt?
Mjo, men hur ska det senare gå till?

Hur fungerade koden nu igen, målas cirklarna över för varje som ritas eller målas allt när de alla är uppritade?
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av Victor »

1, först ritas en cirkel ut
2, sen räkna ut vilka cirklar som kommer att skära med denna första cirkel
3, därefter målas chorden ut för de cirklar som skär i denna cirkel

Allt detta sker på varje cirkel som finns i en specifierad fil (stdin).

Allt som målas läggs ovanpå varandra, lager på lager..
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Användarvisningsbild
upnorth
Inlägg: 7100
Blev medlem: 14 jun 2007, 19:43
OS: Linux Mint
Ort: Oslo

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av upnorth »

Victor skrev: 1, först ritas en cirkel ut
2, sen räkna ut vilka cirklar som kommer att skära med denna första cirkel
3, därefter målas chorden ut för de cirklar som skär i denna cirkel

Allt detta sker på varje cirkel som finns i en specifierad fil (stdin).

Allt som målas läggs ovanpå varandra, lager på lager..
Jag skulle tro att du har någon inbygg begränsning eller liknande som omöjliggör beräkningar av fler än 2 cirklar samtidigt. Det eftersom ditt program inte tar hänsyn till cirklar längre tillbaka i historien än den förra uppritade.
Användarvisningsbild
Victor
Inlägg: 425
Blev medlem: 12 okt 2006, 19:08
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Lund

SV: Rita cirklar som man ska "klippa" i när de överlappar varandra

Inlägg av Victor »

hmm.. njae, jag förstår inte riktigt vad du menar.. Menar du att jag skapat denna begränsning eller att den finns som standard? Ja tror inte jag har skapat den, och jag vet att programmet/funktionen kollar _alla_ cirklar och om de skär varandra på något sätt så "sparas" den cirkeln i en tuple som sedan utökas allt eftersom om det är fler som skär med denna cirkel.
// So long, and thank you for all the fish

"Your Ubuntu User number is # 10448"
Skriv svar

Återgå till "Programmering och webbdesign"