Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Η περιστροφή σημαίνει και στρέβλωση;;

Îåêßíçóå áðü ôï ìÝëïò spantos. Τελευταία δημοσίευση από το μέλος spantos στις 09-10-2006, 16:41. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  29-06-2006, 11:38 14298

    Η περιστροφή σημαίνει και στρέβλωση;;

    Γνωρίζει κανείς γιατί όταν εφαρμόσεις ένα Rotate Transformation σε ένα Brush ενός αντικειμένου (π.χ. Rectangle) τότε εφαρμόζεται παράλληλα και ένα skew Transformation οπως φαίνεται και στην εικόνα.

    Cross posting


    MSc Konstantinos Pantos
    MCP Software Engineer
    http://blog.pantos.name
    http://kostas.pantos.name
  •  05-10-2006, 13:58 18017 σε απάντηση της 14298

    Απ: Η περιστροφή σημαίνει και στρέβλωση;;

    1. To rotation στην πραγματικότητα είναι 2 skew στους 2 άξονες

    2. Η εικόνα που δείχνεις μήπως έχει γίνει scaled στον y από το presentation?

    δήλαδη εσύ βλέπεις το scale_y_by_window(image) πας να εφαρμοσεις περιστροφή και αντι να πάρεις το αναμενόμενο rotate(scale_y_by_window(image)) έχεις το scale_y_by_window(rotate(image)) ?

    για άλλαξε τα width/height σε ίδια τιμή...


    ->Hail Eris All Hail Discordia<-
  •  05-10-2006, 16:29 18027 σε απάντηση της 18017

    Απ: Η περιστροφή σημαίνει και στρέβλωση;;

    1. Όχι δεν είναι (και δε θα πρέπει να είναι) γιατί τότε δε θα υπήρχε λόγος για rotate transform αφού θα μπορούσαμε να πετύχουμε rotation με skew transform. Για του λόγου το αληθές μπορείς να δοκιμάσεις το πιο κάτω παράδειγμα στο XAMLPad

    <Grid xmlns="http:"//schemas.microsoft.com/winfx/2006/xaml/presentation
    xmlns:x
    =http://schemas.microsoft.com/winfx/2006/xaml
    xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006
    xmlns:d
    =http://schemas.microsoft.com/expression/interactivedesigner/2006
    mc:Ignorable="d"
    Background="#FFFFFFFF"
    x:Name="DocumentRoot"
    Width="640" Height="480">
    <
    Rectangle Stroke="#FF000000" Fill="#FF000000" HorizontalAlignment="Left" VerticalAlignment="Stretch" Margin="69,126,0,168" Width="108" Height="Auto" x:Name="Rectangle1"/>
    <
    Rectangle d:LayoutOverrides="Width" Stroke="#FF000000" Fill="#FF000000" HorizontalAlignment="Right" Margin="0,126,197,168" Width="108" Height="186" x:Name="Rectangle1_Copy" RenderTransformOrigin="0.5,0.5">
    <
    Rectangle.RenderTransform>
    <
    TransformGroup>
    <
    TranslateTransform X="0" Y="0"/>
    <
    ScaleTransform ScaleX="1" ScaleY="1"/>
    <
    SkewTransform AngleX="50" AngleY="-50"/>
    <
    RotateTransform Angle="0"/>
    <
    TranslateTransform X="0" Y="0"/>
    <
    TranslateTransform X="0" Y="0"/>
    </
    TransformGroup>
    </
    Rectangle.RenderTransform>
    </
    Rectangle>
    </
    Grid>

    Θα διαπιστώσεις ότι ενώ έχω δυο ίδια rectangles με ίδιο width και height (τα έκανα copy) αυτό με το skew transformation ένω έχει γίνει σωστά rotate έχει μεγαλώσει και το εμβαδόν του.

    2. Αν δείς τη Xaml στη πρώτη εικόνα θα δεις ότι δεν έχει εφαρμοστεί κανένα scale transformation (τουλάχιστον ηθελημένα τώρα αν υπάρχει bug δε ξέρω)

    Όταν το Rectangle είναι τετράγωνο το ratation πετυχαίνει λόγο του bug της περιστροφής. Υποθέτω ότι στο πολλαπλασιασμό πινάκων συντεταγμένων μέσω του οποίου πετυχαίνεις περιστροφή ενός αντικειμένου κάπου δεν έχει ληφθεί υπόψη μια διάσταση.

    Για περισσότερα μπορείς να δεις και το σχετικό thread από τα MS Newsgroups

    http://msdn.microsoft.com/newsgroups/default.aspx?&query=rotate&lang=en&cr=US&guid=&sloc=en-us&dg=microsoft.public.windows.developer.winfx.avalon&p=1&tid=67ca4cca-7edf-4ec9-a2b5-2a60519a22cc&mid=67ca4cca-7edf-4ec9-a2b5-2a60519a22cc


    MSc Konstantinos Pantos
    MCP Software Engineer
    http://blog.pantos.name
    http://kostas.pantos.name
  •  09-10-2006, 15:57 18306 σε απάντηση της 14298

    Απ: Η περιστροφή σημαίνει και στρέβλωση;;

    1. Ok έχεις δίκιο εν μέρη.

    χρειάζεσαι και ενα scale_XY(cos(angle)) μετα τα shears...

    2. Το Πρόβλημα όπως το είδε και ο Adam είναι σε κάποιο strech αφού γινουν όλοι οι μετασχηματισμοι, δοκίμασε τα properties του canvas πχ βάλε Height="210" Width="210" αλλιως ίσως είναι πράγματι bug
    ->Hail Eris All Hail Discordia<-
  •  09-10-2006, 16:41 18312 σε απάντηση της 18306

    Απ: Η περιστροφή σημαίνει και στρέβλωση;;

    1. Και όχι μόνο... χρειάζεσαι και move για να έρθει στην αρχική του θέση αφού μετά το transformation το αντικείμενο έχει μετακινηθεί.

    2. Το έχω ήδη δοκιμάσει, χωρίς αποτέλεσμα.

    Thanks for following up on this issue...
    MSc Konstantinos Pantos
    MCP Software Engineer
    http://blog.pantos.name
    http://kostas.pantos.name
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems