5/5 (15 avis)
Vue 4 594 fois - Téléchargée 414 fois
Option Explicit Dim X0 As Integer, Y0 As Integer ' centre de l'écran Dim e As Single ' échelle Dim t As Single, p As Single Dim ct As Single ' COS t Dim st As Single ' SIN t Dim cp As Single ' COS p Dim sp As Single ' SIN p Dim x(1 To 8) As Single, y(1 To 8) As Single ' 8 sommet du cube Const PI As Single = 3.141559 Private Sub Form_Load() X0 = Qbe.ScaleWidth / 2 Y0 = Qbe.ScaleHeight / 2 e = Qbe.ScaleWidth / 5 End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, Xx As Single, Yy As Single) t = (Xx - X0) / X0 * PI p = (Yy - Y0) / Y0 * PI ct = Cos(t) st = Sin(t) cp = Cos(p) sp = Sin(p) x(1) = X0 + e * (st * cp + ct + st * sp) x(2) = X0 + e * (st * cp + ct - st * sp) x(3) = X0 + e * (st * cp - ct + st * sp) x(4) = X0 + e * (st * cp - ct - st * sp) x(5) = X0 + e * (-st * cp + ct + st * sp) x(6) = X0 + e * (-st * cp + ct - st * sp) x(7) = X0 + e * (-st * cp - ct + st * sp) x(8) = X0 + e * (-st * cp - ct - st * sp) y(1) = Y0 + e * (-sp + cp) y(2) = Y0 + e * (-sp - cp) y(3) = Y0 + e * (-sp + cp) y(4) = Y0 + e * (-sp - cp) y(5) = Y0 + e * (sp + cp) y(6) = Y0 + e * (sp - cp) y(7) = Y0 + e * (sp + cp) y(8) = Y0 + e * (sp - cp) Cls Line (x(1), y(1))-(x(2), y(2)) Line (x(1), y(1))-(x(3), y(3)) Line (x(1), y(1))-(x(5), y(5)) Line (x(2), y(2))-(x(4), y(4)) Line (x(2), y(2))-(x(6), y(6)) Line (x(3), y(3))-(x(4), y(4)) Line (x(3), y(3))-(x(7), y(7)) Line (x(4), y(4))-(x(8), y(8)) Line (x(5), y(5))-(x(6), y(6)) Line (x(5), y(5))-(x(7), y(7)) Line (x(6), y(6))-(x(8), y(8)) Line (x(7), y(7))-(x(8), y(8)) End Sub
25 juin 2004 à 14:03
Kirua : je vais me renseigner sur Bresenham. Merci encore.
22 juin 2004 à 14:45
Bresenham est un mathématicien assez connu en fait, tout spécialement pour sa routine de dessin de droites dans un "champ de pixels".
22 juin 2004 à 14:44
26 mai 2004 à 18:52
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, Xx As Single, Yy As Single)
'On ne déclare pas P et t car ils sont calculés en temps réel
t = (X0 - Xx) / X0 * PI
p = (Yy - Y0) / Y0 * PI
bien realisé en tous cas
felicitation
25 mai 2004 à 07:12
Petite question : si tu précalcules tes sin et cos et les mettre dans un tableau (tu lances les calculs dans le form_load, par exemple) est-ce que ça n'accèlèrerait pas ta routine ? Je ne sais pas trop comment sont gérés les sin et les cos dans vb, donc si ça se trouve ca ne change absolument rien :p
@pluche
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.