Analog Saat Ve Trigonometri

15/05/2020, 09:11

accessman

iyi günler ekteki örnekte 14x14 cm büyüklüğünde bir analog saat var 
yelkovan ekrep vs bu ölçülere göre ayarlanmış
bu saati 3x3 cm   ölçülerine düşürmeye çalıştım ama bir kaç denemeden sonra
trigonometrinin bana göre olmadığını anladım
nasıl yapmak lazım neresini değiştireceğiz
15/05/2020, 11:36

ozanakkaya

Küçültme işleminde trigonometri hesaplamasına müdahale etmiyorsunuz. 

    Const pi = 3.142857
    Const nCentreLeft = (840), nCentreUp = (840)
    ' This code copyright Ray Corbin 2006
    ' Blue Bridge Pty Ltd, Sydney Australia ra*@aic.net.au
    ' Use wherever provided you include this accreditation.
    Dim nWidth As Single, nHeight As Single
   
    On Error GoTo CH_Err

    Select Case parHand
        Case "Second"
            nWidth = 650 * Sin(84 * pi * x)
            nHeight = 650 * Cos(84 * pi * x)
        Case "Minute"
            nWidth = 550 * Sin(84 * pi * x)
            nHeight = 550 * Cos(84 * pi * x)
        Case "Hour"
            nWidth = 350 * Sin(412 * pi * x)
            nHeight = 350 * Cos(412 * pi * x)
    End Select

    Me("scrLine" & parHand).LineSlant = (Abs(nWidth * nHeight) = (nWidth * nHeight))
    Me("scrLine" & parHand).Width = Abs(nWidth)
    Me("scrLine" & parHand).Height = Abs(nHeight)
   
    If nWidth > 0 Then
        Me("scrLine" & parHand).Left = nCentreLeft
    Else
        Me("scrLine" & parHand).Left = nCentreLeft + nWidth
    End If
   
    If nHeight > 0 Then
        Me("scrLine" & parHand).Top = nCentreUp - nHeight
    Else
        Me("scrLine" & parHand).Top = nCentreUp
    End If
   
CH_Exit:
    Exit Sub
CH_Err:
    MsgBox Err.Description
    Resume CH_Exit

Genişlik ve yükseklik için belirlenen katsayıyı küçültmeniz yeterli.
15/05/2020, 12:33

accessman

çok teşekkürler 840 rakamını nasıl buluyoruz mesela 4 cm çap için nasıl bulacağız
15/05/2020, 12:55

ozanakkaya

Koddaki 840 twips ölçü birimidir. 1 cm, yaklaşık 567 twips eder. Saat resminin yarıçapı 2 olacağı için 840 yerine 1134 yazacaksın. Hiç bilmiyorsan 840 yerine 1000 yaz, solda kaldıysa 1200 yaz, sağa kaydıysa 1150 yaz.
15/05/2020, 12:57

accessman

ben de o mantıkla 7*567 değerini
6*567 yaptığımda hata verdi