Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Utmaningar!

Postades av 2001-02-18 08:25:00 - Peter Holm, i forum visual basic - allmänt, Tråden har 12 Kommentarer och lästs av 882 personer

Värst vad det blivit populärt att mäta sina kunskaper på detta forum....

OK. Här kommer en annan utmaning från mig till de hågade.

Anta att ni har ett formulär... På detta formulär slumpar du ca 200 punkter.

DIN uppgift är att:
Drag en linje mellan de punkter som tillsammans bildar den yttre gränsen för mängden av punkter.

RESULTAT:
Du skall ha ett forulär med en oregelbunden ring där samtliga utslumpade punkter befinner sig på eller innanför ringen.

/Peterh

PS. SvenPon Lösningsförslag till din Radar kommer.....


Svara

Sv: Utmaningar!

Postades av 2001-02-18 14:15:00 - Johan Djupmarker

Kul! Detta måste testas...

/Johan


Svara

Sv: Utmaningar!

Postades av 2001-02-18 16:05:00 - Sven Åke Persson

Hej
Jag har löst problemmet, Märkligt resultat !
Ni löser förmodligen probet med matematik
Jag tog ett annat grepp API GetPixel.På min 200 mhz
tar det ca 5 sek innan det bli klart.

Tillägg jag gjorde mitt ex i 500 * 500 pixel

Kul tankenöt där gick halva söndag em.

mvh
Sven


Svara

Sv: Utmaningar!

Postades av 2001-02-18 16:52:00 - Johan Djupmarker

http://www.pellesoft.nu/upload/JohanDcirkel.zip

Här är mitt förslag. Om någon är intresserad kan jag kommentera programmet, jag orkade inte det nu... Detta är ju farligt med saker att klura på, jag kan ju inte sluta att tänka förrän jag har löst det ;)

/Johan

PS. SvenPon, min lösning tar 20 ms på 800MHz oavsett storlek på formen ;)


Svara

Sv: Utmaningar!

Postades av 2001-02-18 16:53:00 - Johan Djupmarker

Får man se din lösning Sven? Jag har ju publicerat min :)

/Johan


Svara

Sv: Utmaningar!

Postades av 2001-02-18 18:28:00 - Sven Åke Persson

Hej Johan
Lade den i din brevlodda nyss
Ha det
Sven


Svara

Sv: Utmaningar!

Postades av 2001-02-18 21:04:00 - Peter Holm

Härligt Johan D...

Alldeles korrekt lösning och så snabb som den skall vara.

Starta med en slumpvis utvaldpunkt. Leta sedan reda på den punkt vars vinkel till startpunkten är störst. Sedan leta reda på nästa punkt vars vinkel är störts osv tills varvet är fullbordat.

/Peterh

PS. Man skulle nästa kunna tro att du är utbildad på HIG!


Svara

Sv: Utmaningar!

Postades av 2001-02-18 23:49:00 - Sven Åke Persson

Hej
Undrar vad det var jag åstadkom spektakulärt blev
det i allafall.Det är väl skillnad på sammanbinder
respektive omsluter.Kul var det det j.... snyggt om
man slumpar en sådär 10 20 punkter.

Ha det
Sven


Svara

Sv: Utmaningar!

Postades av 2001-02-19 - Johan Djupmarker

"Alldeles korrekt lösning"? Finns det en "rätt" lösning till detta? Jag blev ganska nöjd med min, fast jag satt ganska länge med den... Fast största delen av tiden gick åt till att leta rätt på små idiotiska fel =( Hade nog med gårddagens festande att göra...

Jag gjorde nästan som du beskrev, först letade jag upp punkten som var längst åt vänster, om det finns mer än en på samma x-koordinat tas den som är längs ned. Sedan letar jag rätt på den punkt som ligger på lägsta vinkel från y-axeln, då kan det inte finnas någon punkt utanför, när jag sedan har kommit till startpunkten igen är cirkeln fullständig.

/Johan

PS. HIG = Högskolan i Gävle???


Svara

Sv: Utmaningar!

Postades av 2001-02-19 07:50:00 - Peter Holm

Japp just den högskolan ja... Vi som gått där är ju liasom rätt kända för att vara duktiga på det här med programmering.... Åtminstone många av oss.. Det är en bra skola.

ca 7500 studenter och jag skulle väl tro att en 1000 av dem studerar något som har med data/datorer att göra... Dom har ca 20 datasalar (kanske) med ungefär 20 datorer i varje... Så det är aldrig frågan om att boka dator 100 dagar för det att man måste ha den.

Här finns dessutom Creative media Lab, Ni har säkert sett en del reklamsnuttar på TV som gjorts av elever härifrån... Ketchup-reklamen exempelvis.... Då en ketchupflaska ritar på en tallrik... Ett fotbollsmål, eller så.. Jag tror även att Ballerina-kex reklamen är animerad av elever från denna kurs.





Svara

Sv: Utmaningar!

Postades av 2001-02-19 09:13:00 - Johan Djupmarker

Då får jag väl visa vad CTH går för...:)

/Johan


Svara

Sv: Utmaningar!

Postades av 2001-02-19 09:21:00 - Peter Holm

Ni är säkert garanterat också duktiga..... Det är vi väl alla på ett eller annat sätt.


Jag vill ju av naturliga själ bara göra lite reklam för HIG eftersom jag själv gått där..

Dataingenjörsprogrammet 120p

/peterh


Svara

Sv: Utmaningar!

Postades av 2001-02-22 20:25:00 - Johan Djupmarker

Nu har jag kommenterat koden lite, hoppas att någon förstår nått iaf, annars är det bara att fråga...

<code>
Private Type Punkt
x As Integer
y As Integer
End Type
Dim SlumpPunkter(0 To 199) As Punkt
Dim Ring() As Punkt


Private Sub Form_Load()
Dim tmp As Integer
Dim LastVinkel As Double
Dim TmpVinkel As Double
Dim TmpVinkel2 As Double
Dim Hittad As Boolean

Randomize

'slumpar ut punkter i en array, inga punkter skapas den sista tiondelen av formens hökd/bredd
For tmp = 0 To UBound(SlumpPunkter)
SlumpPunkter(tmp).x = Rnd * (ScaleWidth * 0.8) + ScaleWidth * 0.1
SlumpPunkter(tmp).y = Rnd * (ScaleHeight * 0.8) + ScaleHeight * 0.1
Next

'ring är en array med koordinaterna till ytterramen
ReDim Ring(0)

'första punkten får kordinaten längst upp åt höger i formen
Ring(0).x = ScaleWidth - 1
Ring(0).y = 0

'en punkt som befinner sig längst åt vänster letas upp
For tmp = 0 To UBound(SlumpPunkter)
If SlumpPunkter(tmp).x <= Ring(0).x Then
Ring(0).x = SlumpPunkter(tmp).x
End If
Next
'letar rätt på den punkten med högst y-koordinat av de som ligger längst åt vänster
For tmp = 0 To UBound(SlumpPunkter)
If SlumpPunkter(tmp).x = Ring(0).x Then
If SlumpPunkter(tmp).y >= Ring(0).y Then
Ring(0).y = SlumpPunkter(tmp).y
End If
End If
Next

'här beräknas ytterpunkterna fram, kan bli lite knivigt att beskriva i ord...
LastVinkel = 0
'loop som går tills den har kommit runt ett varv och hittat startpunkten
While (Not (Ring(0).x = Ring(UBound(Ring)).x And Ring(0).y = Ring(UBound(Ring)).y)) Or UBound(Ring) = 0
TmpVinkel = 360
ReDim Preserve Ring(UBound(Ring) + 1)
'loop letar igenom alla punkter efter den med lägst vinkel
For tmp = 0 To UBound(SlumpPunkter)
TmpVinkel2 = BerVinkel(Ring(UBound(Ring) - 1).x, Ring(UBound(Ring) - 1).y, SlumpPunkter(tmp).x, SlumpPunkter(tmp).y)
If LastVinkel <= TmpVinkel2 And TmpVinkel2 < TmpVinkel Then
'vinkeln som är så liten som möjligt men större än den senaste letas fram
TmpVinkel = TmpVinkel2
Ring(UBound(Ring)).x = SlumpPunkter(tmp).x
Ring(UBound(Ring)).y = SlumpPunkter(tmp).y
End If
Next
LastVinkel = TmpVinkel
Wend

'ritar ut "cirkeln"
For tmp = 0 To UBound(Ring) - 1
Line (Ring(tmp).x, Ring(tmp).y)-(Ring(tmp + 1).x, Ring(tmp + 1).y)
Next

'ritar ut alla punkter i rött
For tmp = 0 To UBound(SlumpPunkter)
Me.PSet (SlumpPunkter(tmp).x, SlumpPunkter(tmp).y), RGB(255, 0, 0)
Next
End Sub

Function BerVinkel(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer) As Double
'funktionen räknar ut vinkeln mellan två punkter i förhållande till y-axeln
Const pi = 3.14159265358979
Dim AvstX As Integer, AvstY As Integer, vinkel As Double

AvstX = x2 - x1
AvstY = y2 - y1

If AvstX = 0 And AvstY = 0 Then
'om det är samma vinkel returneras 360, då kommer punkten ignoreras
vinkel = 360
ElseIf AvstY = 0 Then
If AvstX < 0 Then
vinkel = 270
Else
vinkel = 90
End If
ElseIf AvstX = 0 Then
If AvstY < 0 Then
vinkel = 0
Else
vinkel = 180
End If
ElseIf AvstX > 0 Then
If AvstY < 0 Then
vinkel = Atn(-AvstX / AvstY) * 180 / pi
Else
vinkel = 90 + Atn(AvstY / AvstX) * 180 / pi
End If
Else
If AvstY < 0 Then
vinkel = 270 + Atn(AvstY / AvstX) * 180 / pi
Else
vinkel = 180 + Atn(-AvstX / AvstY) * 180 / pi
End If
End If

BerVinkel = vinkel

End Function
</code>
/Johan


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 616
27 953
271 709
5 538
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies