Algoritme voor honingraatstructuur vullen

Pagina: 1
Acties:

Vraag


Acties:
  • +1 Henk 'm!

  • TomsDiner
  • Registratie: November 2014
  • Laatst online: 18-07 23:44
Al heel lang gebruik ik een eigen startpagina met links. Een beetje zo'n windows-8 look. Die ben ik nu opnieuw aan het maken, en we gaan gek doen: het worden hexagons.
  • Op de pagina zelf staat een wisselend aantal links (meestal 80 - 120), deze moeten als een zeshoek worden getoond.
  • Bij elkaar horende links (qua categorie) moeten bij elkaar blijven: het moet een cluster worden waarbij horizontaal of verticaal aansluiting is.
  • De kleinste groep is momenteel 2, de grootste bestaat uit een stuk of 12 links.
  • De breedte van de honingraat hangt af van de resolutie van het scherm. (*)
  • Het mag niet at random gemaakt worden: ik vind het fijn dat de links -tot ik iets wijzig- bij elke resolutie een vaste plek hebben. (*)
  • Het is eigenlijk de bedoeling dat alles aansluit, en dat alle open plekken onderaan zitten
  • Ik heb nog nooit groepen van 1 gehad, die kan ik vermijden
(*) Ik heb een werkplek met een 19 inch, en een werkplek met een 24 + 32 inch. Op het grote scherm staan meer links naast elkaar, maar wel altijd op dezelfde plek.


Je krijgt dan dus zoiets:

Afbeeldingslocatie: http://2muchtime.org/uploads/hex.jpg

Dus alle kleuren (stellen een categorie voor) grenzen op minimaal één van de zes zijkanten aan een link uit dezelfde categorie

Vraag:
  • Hoe noem je zo'n algoritme? Ik kan degene die voor vierkante tegels zou moeten werken namelijk ook nergens vinden, maar die heb ik ooit in werking gezien in een wordpress template. (long time ago, een win-8 look-alike)
(de programmeertaal is niet zo belangrijk, ik zal het straks wel in javascript gieten.)

Wat heb ik zelf al gedaan?
Ik ben al een hele tijd aan het zoeken, maar er zijn twee mogelijkheden: of het bestaat niet, of ik gebruik de verkeerde zoektermen.

Alle reacties


  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Lijkt redelijk op wat WinDirStat doet, misschien eens kijken hoe zij dat doen?

Het heet binary search packing blijkbaar: https://stackoverflow.com...matically/8765049#8765049

[ Voor 49% gewijzigd door Sandor_Clegane op 12-09-2018 22:50 ]

Less alienation, more cooperation.


  • TomsDiner
  • Registratie: November 2014
  • Laatst online: 18-07 23:44
Hmm... Dat zit wel in de buurt, maar dat is het niet.

Ik heb inmiddels iemand gesproken die dat Win-8 thema ook gezien had, en volgens hem is het een trucje: er wordt als een soort "Snake" een route gelopen met zoveel mogelijk bochten, waarbij alle plaatsen (tiles) meegenomen worden. Langs die route worden de groepen van items gesorteerd op categorie neergezet. Daardoor lijkt er een intelligente clustering, maar in wezen heeft het systeem geen benul van groepen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
TomsDiner schreef op donderdag 13 september 2018 @ 22:15:
Ik heb inmiddels iemand gesproken die dat Win-8 thema ook gezien had, en volgens hem is het een trucje: er wordt als een soort "Snake" een route gelopen met zoveel mogelijk bochten, waarbij alle plaatsen (tiles) meegenomen worden. Langs die route worden de groepen van items gesorteerd op categorie neergezet. Daardoor lijkt er een intelligente clustering, maar in wezen heeft het systeem geen benul van groepen.
Je bedoelt een Hilbert Curve (of Moore Curve) ;)

Sorteer je items op soort/groep/categorie/whatever en plaats ze dan dmv het Hilbert Curve algoritme in de beschikbare ruimte.

[ Voor 14% gewijzigd door RobIII op 13-09-2018 23:30 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • TomsDiner
  • Registratie: November 2014
  • Laatst online: 18-07 23:44
Ongeveer, ongeveer.... (denk ik momenteel)

In de twee genoemde curves wordt een globale lijn opgeschaald, en het zou voor dit systeem het mooiste resultaat geven als de lijn eerst zo compleet mogelijk een kleine ruimte opvul -zeg bijvoorbeeld 4x4- voordat er naar een naastgelegen blok van dezelfde afmeting gekeken moet worden. Daarmee is de kans het grootst dat categorieen een beetje als groep worden weergegeven. (Eigenlijk zou het algoritme eerst de gemiddelde groepsgrootte of de groepsgrootte die het meest voorkomt moeten bepalen, en dan kijken of er beter in 3x3, 4x4 of 5x5 gewerkt kan worden)

En dan mag ik ook nog aan de hexagons, maar eigenlijk is dat niet veel moeilijker: eigenlijk zelfs makkelijker, want elke tile heeft zes buren ipv vier.

Ik ga eens met het idee stoeien, maar moet eerst even de basis beter maken. De divs werken niet goed, ik ga morgen de boel even herbouwen met canvas.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
TomsDiner schreef op vrijdag 14 september 2018 @ 00:43:
(Eigenlijk zou het algoritme eerst de gemiddelde groepsgrootte of de groepsgrootte die het meest voorkomt moeten bepalen, en dan kijken of er beter in 3x3, 4x4 of 5x5 gewerkt kan worden)
Dan bepaal je dat toch zélf voordat je het algoritme aan de gang zet :?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1