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


Analog klocka

Postades av 2006-01-14 11:23:30 - Jan Andersson, i forum visual basic - allmänt, Tråden har 5 Kommentarer och lästs av 878 personer

Kod till en analog klocka ?
Är det svårt ?


Svara

Sv: Analog klocka

Postades av 2006-01-14 12:26:21 - Niklas Jansson

Inte speciellt.
Steg:
1. Ta fram tiden.
2. Dela upp den i timmar, minuter och sekunder. Där har du en digital klocka enkelt.
3. Om timmar >12 så timmar=timmar-12
4. Nu översätter du varje grej till en vinkel (lämpligtvis i radianer, men i grader går också):
radtim=2*pi*timmar/12
radmin=2*pi*minuter/60
radsek=2*pi*sekunder/60
5. Rita ut visare med en given startpunkt och en given längd, i de vinklarna du just räknat ut.
Det blir alltså streck mellan (xs, ys) och (xs+r*cos(radtim), us+r*sin(radtim)).
6. Lägg eventuellt till lite annat skit också (småstreck etc.).


Svara

Sv:Analog klocka

Postades av 2006-01-14 13:02:21 - Niklas Jansson

Ett tillägg bara; gjorde ett test, och insåg en liten grej; när du delar upp i timmar, minuter och sekunder i steg 2, så kan du antingen ta heltalsdelen, eller ha med decimalerna. Skillnaden blir att visarna "hoppar" fram, lite som klockan mellan sändningarna på tv, om man tar heltalsdelen. Kör man hela grejen blir det mer som på en vanlig klocka.

Edit: Ytterligare ett tillägg: du behöver inte dra bort 12 på timmen. Sin och cos är ju definierade för >2pi också... vad tänkte jag på... =)


Svara

Sv: Analog klocka

Postades av 2006-01-14 15:55:06 - Jan Andersson

Tackar så så mycket, skall prova detta


Svara

Sv:Analog klocka

Postades av 2006-01-14 16:51:54 - Niklas Jansson

Så här blev min snabbt ihopsvängda lösning förut:
<code>
Option Explicit

Private Sub Timer_Timer()
Dim Tim As Double, Min As Double, Sek As Double
Dim RadTim As Double, RadMin As Double, RadSek As Double
Const pi As Double = 3.14159265358979

'Heltalsvariant
'Tim = Hour(Now)
'Min = Minute(Now)
'Sek = Second(Now)

'Decimalvariant
Sek = Second(Now)
Min = Minute(Now) + Sek / 60
Tim = Hour(Now) + Min / 60



RadTim = 2 * pi * Tim / 12 - pi / 2
RadMin = 2 * pi * Min / 60 - pi / 2
RadSek = 2 * pi * Sek / 60 - pi / 2

Dim xs As Double, ys As Double
Dim timw As Double, minw As Double, sekw As Double
Dim timh As Double, minh As Double, sekh As Double
xs = Form1.ScaleWidth / 2
ys = Form1.ScaleHeight / 2

timw = Form1.ScaleWidth / 6
minw = Form1.ScaleWidth / 2.5
sekw = Form1.ScaleWidth / 2.1

timh = Form1.ScaleHeight / 6
minh = Form1.ScaleHeight / 2.5
sekh = Form1.ScaleHeight / 2.1

Form1.Cls
'Ellipitisk
Form1.Line (xs, ys)-(xs + timw * Cos(RadTim), ys + timh * Sin(RadTim))
Form1.Line (xs, ys)-(xs + minw * Cos(RadMin), ys + minh * Sin(RadMin))
Form1.Line (xs, ys)-(xs + sekw * Cos(RadSek), ys + sekh * Sin(RadSek))
'Form1.Circle (xs, ys), Max(ScaleWidth, ScaleHeight) / 2

'Cirkulär
'Form1.Line (xs, ys)-(xs + timw * Cos(RadTim), ys + timw * Sin(RadTim))
'Form1.Line (xs, ys)-(xs + minw * Cos(RadMin), ys + minw * Sin(RadMin))
'Form1.Line (xs, ys)-(xs + sekw * Cos(RadSek), ys + sekw * Sin(RadSek))
'Form1.Circle (xs, ys), ScaleWidth / 2
End Sub

Private Function Max(a As Double, b As Double) As Double
If a > b Then Max = a Else Max = b
End Function
</code>

Finns mycket att snygga upp, etc., men det funkar.


Svara

Sv: Analog klocka

Postades av 2006-01-15 09:27:15 - Jan Andersson

Jodå, den fungerar, kanske inte så snygg men grunden har jag nu
Tackar så mycket


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 623
27 953
271 709
770
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
Expand
next previous
Close

Previous

0/0

Next