IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]definir un point de rotation


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [VB6]definir un point de rotation
    bonjour à tous,

    quelqu'un peut peut-être m'aider... je souhaiterais faire tourner un objet autour d'un point défini. j'arrive à faire tourner un objet sur lui-même (ThisDisplay.Object.Rotation) mais pas à le faire tourner autour de quelque chose d'autre! alors je pleure beaucoup mais ca ne résoud rien non plus... je suis donc à cours d'idée...

    merci!

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour et bienvenue sur ce forum.

    Pourrais-tu nous en dire un peu plus?

    Par exemple, quel est ton environnement de développement et as-tu déjà du code à nous montrer?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    salut, merci je suis très content aussi d'être là!

    je travaille sur processbook qui est un programme de dessin (pas très efficace d'ailleurs) conçu pour travailler dans l'environnement scada. j'ai vu qu'il y avait moyen d'inclure du VB, des délires malsains ont commencés à émaner de mon esprit malade...

    donc j'ai fait des petits trucs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Public Sub Arrow2716()
     
     
    y = ThisDisplay.Value2716.GetValue(A, b)
     
    If y < 92.5 Then
    z = 50
     
    Else
    z = 100
     
    End If
     
    ThisDisplay.Line2716.Rotation = z
     
    End Sub
    mais maintenant j'aimerais mettre le point de rotation sur le bout de la ligne....

    voilà, merci!

  4. #4
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Et ta librairie VB, elle n'est pas documentée? Parce que ça m'a l'air d'être des objets assez "propiétaires", quand même...

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Si airliquide veut voir son pseudo tourner autour d'un petit cercle, et en plus modifier la taille, et l'échappement de son pseudo... j'ai déjà fait ...
    Si çà l'intérsesse (et peut-être d'autres) il n'a qu'à le dire ...

  6. #6
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Y'a pas de doute: y'a des gens qui savent s'amuser...

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Alors , pour lui faire tourner la tête :
    dans une form Form1 :
    1 picturebox picture1
    1 commandbutton command1
    3 textboxes, text1, text2 et text3
    3 labels Label1, Label2 et Label3
    1 Timer Timer 1
    et.... ce code !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    Option Explicit
    Const LF_FACESIZE = 32
    Private Type LOGFONT
      lfHeight As Long
      lfWidth As Long
      lfEscapement As Long
      lfOrientation As Long
      lfWeight As Long
      lfItalic As Byte
      lfUnderline As Byte
      lfStrikeOut As Byte
      lfCharSet As Byte
      lfOutPrecision As Byte
      lfClipPrecision As Byte
      lfQuality As Byte
      lfPitchAndFamily As Byte
      lfFaceName(1 To LF_FACESIZE) As Byte
    End Type
    Private Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private aa As String, taille As String, echappement As Integer, orientation As Integer
     
    Public Sub PrintText(ByRef pic As PictureBox, ByVal x As Long, ByVal y As Long, ByVal strText As String, ByVal lEscapment As Long, ByVal lOrient As Long, ByVal lSize As Long)
      On Error Resume Next
      Dim font As LOGFONT
      Dim prevFont As Long
      Dim hFont As Long
      Dim ret As Long
      font.lfEscapement = lEscapment
      font.lfOrientation = 300
      font.lfItalic = 0
      font.lfHeight = (lSize * -20) / Screen.TwipsPerPixelY
      font.lfItalic = 0
      font.lfUnderline = 0
      hFont = CreateFontIndirect(font)
      prevFont = SelectObject(pic.hdc, hFont)
      pic.CurrentX = x
      pic.CurrentY = y
      pic.Print strText
      ret = SelectObject(pic.hdc, prevFont)
      ret = DeleteObject(hFont)
    End Sub
     
    Private Sub Command1_Click()
    If Timer1.Enabled = True Then Timer1.Enabled = False Else Timer1.Enabled = True
    End Sub
     
    Private Sub Form_Activate()
      With Picture1
        .BackColor = &HFF0000
        .DrawMode = 6
        .DrawStyle = 0
        .DrawWidth = 1
        .Left = 1080
      End With
      Picture1.Move 1080, 840, 8775, 5655
      Me.ScaleMode = 1
      Me.Move 0, 0, 10845, 8115
      Text1.Move 1080, 6960, 1080, 495
      Text1.Text = ""
      Text2.Move 6360, 6960, 615, 495
      Text2.Text = "20"
      Text3.Move 7800, 7080, 1815, 375
      Text3.Text = ""
      Label1.Move 1080, 6600, 1815, 375
      Label1.Caption = "orientation"
      Label2.Move 6360, 6480, 495, 375
      Label2.Caption = "taille"
      Label3.Move 7920, 6600, 1935, 375
      Label3.Caption = "echappement"
      Command1.Move 4440, 7200, 1575, 375
      Command1.Caption = "stopper"
    End Sub
     
    Private Sub Text1_LostFocus()
    If Not IsNumeric(Text1.Text) Or Val(Text1.Text) = 0 Then Exit Sub
      Timer1.Enabled = False
      Picture1.Cls
      aa = "essai"
      taille = Text2.Text
      echappement = Val(Text3.Text)
      orientation = Val(Text1.Text)
      PrintText Picture1, 200 - (0 / 100), 200 - (0 / 100), LCase$(aa), orientation, echappement, taille
    End Sub
     
    Private Sub Timer1_Timer()
      Picture1.Cls
      aa = "liquidnitrogen"
      taille = Text2.Text
      echappement = Val(Text3.Text)
      orientation = Val(Text1.Text)
      PrintText Picture1, 200 - (0 / 100), 200 - (0 / 100), LCase$(aa), orientation, echappement, taille
      Text1.Text = Str(orientation - 100)
      If Text1.Text = "-3600" Then Text1.Text = "0"
    End Sub
    pas eu le temps de faire l'échappement, mais il se verra tourner quand même

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    aaaaaaah... merci jmfmarques (j'espère que je ne prononce pas mal)!!! sois remercier de ton geste jusqu'à la 27ème génération! je n'ai pas réussi à garder mon identité secrete plus de deux messages, il va falloir que je révise mon système de dissimulation pourtant si subtil...

    bonne soirée à vous tous!

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Et le petit tag , alors :
    Et... penses également à modifier certains paramètres pour agrandir le rayon du cercle autour duquel tu tournes (bon exercice de compréhension du mécanisme)
    PS : une fois suffisamment agrandi (le cercle), tu peux également écrire un N en son point supérieur (mets-le à l'inétrieur du cercle pour ne pas lui faire un croche-pieds à chaque tour). Tu peux également prévoir une variable tem pour modifier le taux du timer (genre taux.tem = xxx)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Point de rotation Objet3D
    Par Fabiani dans le forum XNA/Monogame
    Réponses: 3
    Dernier message: 10/11/2010, 13h09
  2. Point de rotation d'un object
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 14/02/2008, 15h48
  3. VB6 mal en point sous XP
    Par Foromus dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 04/12/2006, 21h39
  4. Point de Rotation
    Par Clément76 dans le forum SDL
    Réponses: 1
    Dernier message: 10/08/2006, 20h43
  5. VB6 - Definir le format d une cellule sur Excel
    Par Zaal dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/07/2006, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo