Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    Algoritmo[un po di teoria]

    a prescidere dal linguaggio di programmazione, vorrei realizzare una procedura, algoritmo, routine non saprei nemmeno come chiamarla, per disporre delle piccole figure in maniera uniforme su uno spazio , chi mi puo dare qulche spunto?
    cioe dato un determinato spazio che puo' essere per esempio una contenitore di immagini(picture box in visualbasic6) e dato un numero di immagini, come fare per farele distribuire piu o meno uniformemente? chiaramente lo spazio a disposizione rimane sempre lo stesso e il numero di immagini puo' variare,
    vorrei realizare qualcosa tipo l'immagine allegata
    Immagini allegate Immagini allegate

  2. #2
    E' da verificare ma inizierei a provare così: trovo le dimensioni del contenitore (larghezza per altezza in pixel) e la divido per il numero di elementi da sistemare
    Dopo di chè partendo dall'angolo in alto a destra e contanto il numero di pixel andando riga per riga, sistemerei gli elementi ad una distanza pari al numero trovato prima con la divisione.
    (Nota: se l'ultimo pixel della prima riga è il 100, il primo della seconda riga è il 101).
    Forse non sono stato chiarissimo...
    zonatre.it - il mio sito personale
    Belluno Country Side primo e unico gruppo country in provincia
    confronta i costi delle tue chiamate fatte con diversi operatori

  3. #3
    mmmh... no, come non detto... mi sa che non funziona mica tanto bene; facendo così c'è la possibilità ad esempio di trovarmi tutti gli elementi uno sopra l'altro e quindi non distribuiti uniformemente
    zonatre.it - il mio sito personale
    Belluno Country Side primo e unico gruppo country in provincia
    confronta i costi delle tue chiamate fatte con diversi operatori

  4. #4
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    diciamo che tu intendi sistemarli su un'ipotetica griglia, potrebbe essere senz'altro un idea e anche piuttosto rapida e semplice da realizzare, quello che vorrei ottenere pero' e qualcosa di meno schematico e meno incolonnato, forse potrei ottenere quello che desidero utilizzando la tua soluzione "sfalsando" le righe in modo da non avere le figure incolonnate,
    credo pero che per ottenere una distribuzione diciamo omogenea sparpagliata si debba ricorrere a qualche formula matematicha degli insiemi o roba del genere.
    intanto grazie per la tua soluzione che sembra la piu praticabile, rimango pero in attesa anche di altre soluzioni.

  5. #5
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    Originariamente inviato da smprog
    mmmh... no, come non detto... mi sa che non funziona mica tanto bene; facendo così c'è la possibilità ad esempio di trovarmi tutti gli elementi uno sopra l'altro e quindi non distribuiti uniformemente
    hehehheh infatti l'avevo intuito, ma piano piano ci arriviamo

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Qualche domanda chiarificatrice:
    • le figure hanno tutte le stesse dimensioni, o sono variabili?
    • esiste un ordine da rispettare (o da preferire) con cui inserire le immagini?
    • cosa fare se la dimensione totale delle immagini supera quella a disposizione?


    Salut!

  7. #7
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    Originariamente inviato da lelefante
    Qualche domanda chiarificatrice:
    • le figure hanno tutte le stesse dimensioni, o sono variabili?
    • esiste un ordine da rispettare (o da preferire) con cui inserire le immagini?
    • cosa fare se la dimensione totale delle immagini supera quella a disposizione?


    Salut!
    figure tutte uguali

    nessun ordine da rispettare

    non fa niente le immagini le sovrappongo qualora non ci fosse lo spazio sufficente(io direi che per semplificare il problema conviene immaginare che piu che immagini siano punti) poi alla fine piazzero la figura centrata sul punto trovato e se si sovrappongono non è un problema

  8. #8
    Se L è la lunghezza totale delle immagini allineate (diciamo in px)
    e l è la lunghezza di una immagine (in px, hai detto che sono tutte uguali)
    allora puoi costruire la griglia prendendo

    X = L / l;
    Y = L % l;

    Quello che farei io sarebbe di "deformare" mediante una qualche trasformazione. Es, (con c "piccolo")
    X = X+c*X*Y;
    Y = Y+c*X*Y;

    te le sposta lungo una iperbole. Le immagini vicino agli assi rimangono essenzialmente dove sono, quelle lungo la diagonale
    si allontanano. Oppure provi con qualche trasformazione casuale,
    tipo
    X = X+rand();
    Y = Y+rand();

    In realtà dipende da quello che vuoi fare..

  9. #9
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    faro delle prove, grazie ;-)

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Originariamente inviato da afrappe
    figure tutte uguali

    nessun ordine da rispettare
    ...
    Visto che le figure sono tutte uguali direi che la strategia più semplice è quella di dividere lo spazio in una griglia (un po' come ti è già stato suggerito).

    La prima cosa da decidere è quante righe e quante colonne usare: se n è il numero totale di immagini con
    codice:
    sqrt(n)
    (approssimato all'intero superiore) ottieni il numero di righe (uguale al numero di colonne).

    Poi dividi la larghezza dell'area a disposizione per il numero di colonne e l'altezza dell'area per il numero di righe.
    In questo modo ottieni le dimensioni di ogni cella...da lì puoi scegliere la strategia che preferisci, quindi tenere in considerazione eventuali margini/spaziature tra ogni immagine e tra le immagini e i bordi dell'area a disposizione
    Ciao,
    Lorenzo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.