Pages

Affichage des articles dont le libellé est Rotation. Afficher tous les articles
Affichage des articles dont le libellé est Rotation. Afficher tous les articles

WX.python Rotation d'une image dans un panneau sujet

vendredi 28 mars 2014




Bonjour

Alors voila, dernièrement, j'ai eu l'idée tordue de créer une petite interface qui gère un système plus complexe pour Poser (smith micro).

L'idée est simple: un panneau s'ouvre, d'un coté, des sliders prépositionnés, de l'autre une image qui pivote suivant les informations extraites du système de base.


Je suis un noob complet, mais j'ai réussi!

Le problème, c'est que le code a une sale gueule, il est lent et bourré de truc gênent:


Code:


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
class qui_gere_l_image(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1, size=(256, 256), pos=(400, 150))
self.SetBackgroundColour(wx.Colour(74,74,74))
bitmap=wx.Bitmap(os.path.join(os.path.dirname(poser.ScriptLocation()), "imagequitourne.png"))
img = bitmap.ConvertToImage()
img_centre = wx.Point( img.GetWidth()/2, img.GetHeight()/2 )
imgr = img.Rotate( valeurextraite, img_centre )
imgr_center = (wx.Point( (128 - imgr.GetWidth()/2), (128 - imgr.GetHeight()/2) ))
im = imgr.ConvertToBitmap()
self.Refresh()
bmp = wx.StaticBitmap(self, bitmap=im)
bmp = bmp.SetPosition((imgr_center))





class MainWindow(wx.Dialog):
def __init__(self, parent):
wx.Dialog.__init__(self, parent, -1, titre, size=(800, 600), style=wx.DEFAULT_DIALOG_STYLE)
panel = wx.Panel(self, -1, size=(128, 128), pos=(400, 150))
bitmap=wx.Bitmap(os.path.join(os.path.dirname(poser.ScriptLocation()), "Font.jpg"))
sizer = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(sizer)
sizer1 = wx.BoxSizer(wx.HORIZONTAL)
self.aire = qui_gere_l_image(panel)
sizer.Add(self.aire)
self.SetBackgroundColour(wx.Colour(74,74,74))
panel.Fit()



C'est moche, non?
L'idée de bas est simple:
J'ouvre une fenêtre avec wx.Dialog, en parallèle, je gère une image avec wx.Panel, et j'ajoute le résultat dans le cadre principal!:mouarf:

La, c'est la théorie,:weird:, 2 problèmes viennent se superposer:

-Dans le système de gestion de l'image, je suis oblige d'extraire 2 fois le centre, sinon l'image pivote subit des translations (a causes des bord) dans son cadre!:calim2:

-Dans la fenêtre principal, je suis oblige de de créer un panel dans lequel j’enserre le......panel qui gère l'image!:aie:

Le résultat, c'est un code qui est lent, lourd, redondant et qui est, je trouve, particulièrement moche!:weird:

Savez vous comment:
-faire une rotation sans que le bords du cadre ne fassent partir l'image en sucette?
-Insérer l'image dans la fenêtre principal sans que celle ci ne demande un stupide "panel" supplémentaire!


Autre problèmes:
-je ne peut pas insérer d'image de fond sans que les sliders deviennent inaccessible.
-mon image tournant utilise un canal Alpha, mais je n'est pas encore inséré la commande pour l'utiliser, j'ai peur des performances.


A l'origine, je voulais que se soit l'image qui servent de commande, mais je suis limité par Poser à PIL et WXimage, je ne dis pas de bêtises en pensant que c'est impossible avec ses trucs?


Merci de votre attentions, et encore pardon, je débute en python GUI.:calim2:




Rotation pile/face - 2 listview sujet




Bonjour à tous,

Je suis à la recherche d'une solution voir d'un petit exemple pour faire une rotation sur un même axe de 2 listview.
Une cotê pile et l'autre côté face.

Le passage de l'une à l'autre avec un effet rotation 3D sur le même axe.

Il me semble qu'il est possible d'effectuer ce type de traitement avec le WPF.



Avez-vous une idée pour ce cas de figure ?


Merci par avance




Effet rotation Listview 1 et Listview 2 sujet

jeudi 27 mars 2014




Bonjour à tous,

Je suis à la recherche d'une solution voir d'un petit exemple de code VB/C# pour faire une rotation sur un même axe.

Ceci avec deux "listview" une cotê pile et l'autre côté face. Le passage de l'une à l'autre avec un effet rotation 3D sur le même axe.

Il me semble qu'il est possible d'effectuer ce type de traitement avec le WPF.



Avez-vous une idée pour ce cas de figure ?


Merci par avance