Avatar billede superraider Nybegynder
24. november 2004 - 12:02 Der er 6 kommentarer og
1 løsning

cirklens ligning

circle(a,b,x,r)

Dem der kender cirklens ligning kan hurtig lige lave dette.

Den skal retrun y for indtastede x-værdier

a,b er centrum

r=radius.

og det er koordinatsystem, hvor y er positiv nedad og negativ opad
Avatar billede olebole Juniormester
24. november 2004 - 12:48 #1
<ole>

Jeg forstår ikke din sammenblanding af cirklens ligning og 'circle(a,b,x,r)'. Hvad er det, du ønsker?

/mvh
</bole>
Avatar billede ladyhawke Novice
24. november 2004 - 13:12 #2
er det du ønsker koordinaten på cirklens periferi? Altså for en given x værdi hvad er så y på cirklensomkreds?

Det vil i så fald ofte give to værdier, så det er da ikke nemt "bare" lige at lave...
Avatar billede jpvj Nybegynder
24. november 2004 - 13:56 #3
Du får - ganske rigtigt 0, 1 eller 2 mulige løsninger.

0 - hvis cirlen ikke skærer
1 - hvis linien tangerer cirklen
2 - hvis linien skærer cirklen

som du har stillet opgaven kan den ikke løses. Der er to muligheder:

1. Du laver to funktioner som du kalder med samme parametre. Du kontrollerer om den første fejler (så behøves du ikke kalde den anden). Hvis ikke, sammen ligner du resultaterne for at se, som de er ens (1 løsning) eller forskellige (2 løsninger).

Jeg har vist koden her i VBA - du kan nok selv oversætte:

Option Explicit

Function circle_y1(a, b, r, x) As Single
    Dim c, d As Single
    c = x ^ 2 + a ^ 2 - 2 * x * a + b ^ 2 - r ^ 2
    d = (2 * b) ^ 2 - 4 * 1 * c
   
    If d < 0 Then Err.Raise 0
   
    If d > 0 Then circle_y = (2 * b + Sqr(d)) / (2 * 1)
 
End Function

Function circle_y2(a, b, r, x) As Single
    Dim c, d As Single
    c = x ^ 2 + a ^ 2 - 2 * x * a + b ^ 2 - r ^ 2
    d = (2 * b) ^ 2 - 4 * 1 * c
   
    If d < 0 Then Err.Raise 0
   
    If d > 0 Then circle_y = (2 * b - Sqr(d)) / (2 * 1)
 
End Function
Avatar billede superraider Nybegynder
24. november 2004 - 23:11 #4
sorry det gik lidt stærk, det jeg ville var at have en funktion for øvre ov nedre halvdel. hvor man taster x-værdi ind så får man y værdien.

og det er vel også det som dit svar er jpvj.

du får point, og så må jeg jo oversætte
Avatar billede superraider Nybegynder
25. november 2004 - 15:17 #5
den finder vel ikke y værdier, den finder vel skæringer med et eller andet jeg ikke kan gennemskue.

Har aldrig set nogen tage deskriminanten ved cirklens ligning.
Avatar billede ladyhawke Novice
25. november 2004 - 20:23 #6
er det ikke bare løsningen af en 2. gradsligning
Avatar billede superraider Nybegynder
25. november 2004 - 20:31 #7
tja, det er det han gør, men jeg skal ikke bruge det aligevel, for den giver aldrig en skid de rigtige resultater.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB