Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

Tekenen en verwerken van plattegrond

Pagina: 1
Acties:

  • KoosDijk
  • Registratie: Januari 2008
  • Laatst online: 16-11 20:38
Goedemiddag,

Voor een project ben ik bezig met een tickets-systeem voor evenementen. Denk aan tickets maken, ticketcontrole enzovoorts.

Nu willen we (ik en een vriend) er ook een plaatsensysteem in bouwen. In de applicatie is dan aan te geven hoe de zaal van het evenement eruit ziet en waar de stoelen staan. Klanten kunnen dan eventueel zelfs via de webshop selecteren welke stoel ze willen hebben (er wordt dan natuurlijk ook aangegeven welke stoelen al bezet zijn).

Probleem 1:
We wilden gaan werken met een raster, en dan een stoel op elk punt zetten. Maar hoe is het voor een gebruiker cq. ontwerper het handigst om deze zaal aan te geven in de applicatie? Er zijn natuurlijk niet alleen vierkante zalen, maar ook rechthoekige, 6-hoekige en zelfs ronde zalen zijn denkbaar. Elke stoel één voor één op een plaats neer zetten lijkt me redelijk zinloos werk (stel dat je 2000 stoelen in een zaal hebt...). Per rij is ook lastig, tientallen zoniet honderden rijen zijn denkbaar en je zult telkens moeten aangeven hoe lang een rij is. Hoe zouden jullie dit oplossen?

Probleem 2:
Om dit in een webwinkel te verwerken, moet je de stoelen op het raster gaan opslaan in een database. Dat is niet zo'n probleem, behalve dat je dan bijvoorbeeld 2000 rijen krijgt. Hoe zou je dit efficient kunnen opslaan, en, hoe zou je dit efficient kunnen opvragen? Per request 2000 rijen ophalen is natuurlijk not-done. Cachen is ook lastig omdat de bezette stoelen moeten worden aangegeven. Om nou in XML-formaat in 1 cel alles op te slaan en dat te verwerken in PHP lijkt me ook redelijk traag.

Hebben jullie enige tips?

Alvast hartelijk bedankt! :D

[ Voor 0% gewijzigd door KoosDijk op 11-07-2008 14:34 . Reden: typo ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Optimalisatie voor beide problemen: werk in vakken. KISS. :Y)

{signature}


  • KoosDijk
  • Registratie: Januari 2008
  • Laatst online: 16-11 20:38
Voutloos schreef op vrijdag 11 juli 2008 @ 14:43:
Optimalisatie voor beide problemen: werk in vakken. KISS. :Y)
Ja, maar als je bijvoorbeeld het publiek rond het podium hebt zitten, heb je een probleem. Dan heb je namelijk geen rechthoekige vakken meer. En dan moet je dus weer een radius hebben voor die boog ;).

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Misschien zou je in je edit tool een soort van polygoon kunnen laten teken en die dan automatisch vullen met rondjes van een bepaalde grote, deze rondjes zou je daarna met de hand nog enigzins bij moeten kunnen werken, maar zo zou je wel snel een paar vakken kunnen creeeren met elk een stoel

zoiets:
Afbeeldingslocatie: http://i36.tinypic.com/25ksiec.jpg

Eerst teken je een polygoon, daarna laat je alle rondjes zien (die zitten op een raster) dit raster kun je draaien en de circles groter en kleiner maken + dichter op elkaar en minder dicht op elkaar.

Je drukt op "OK" dan verdwijnen alle circles die voor meer dan 50% uit het polygoon vallen, daarna kun je met je muis nog alle circles aanpassen (verplaatsen) en verwijderne of mogenlijk zelfs nog toevoegen. Ook zou het handig zijn dat terwijl je de circles aanpast je kunt zien hoeveel zitplaatsen er in je polygoon zitten.

Hoe je dit daarna efficient in een DB kan opslaan weet ik alleen niet. Ik denk dat het het handigste is als je met een vrij simpele query kan werken en dan de computer van de gebruiker gebruikt om even snel iets van XML te parsen ofzo dan zit je niet echt vast aan het bereken op je server. Maar of dat goed kan met php? Ik ben zelf niet echt into webtalen vrees ik.

Iig succes het klinkt als een leuk programma, ik zou het iig aanpakken als een soort van teken programma met een paar simpele tools.

Edit: met een cirkel of curve tool naast de polygoon tool heb je dan al een vrij handig pakket. En om een rond podium teken je gewoon een polygoon en alles wat toch nog net op het podium zit delete je gewoon handmatig als user. Er mag voor de user toch wel 15min werk in zitten om zon map te maken toch? Misschien is het ook handig als je nog als achtergrond een plattegrond kan gebruiken veel bedrijven hebben die wel en dan hebben ze een goed achtergrondje, werkt beter :).

[ Voor 14% gewijzigd door roy-t op 11-07-2008 15:00 ]

~ Mijn prog blog!


  • xtra
  • Registratie: November 2001
  • Laatst online: 24-10 11:20
Die 2000 rijen kun je nog wel een beetje optimaliseren met een bitpatroontje oid.

Voor de indeling van de zaal zou je een soort template-systeem kunnen maken. Indeling en eventuele kromming heb je dan meteen klaar. Hoef je per rij alleen nog maar het aantal stoelen weer te geven.
Uitzonderingen zul je altijd hebben dus daar moet je rekening mee houden. (Wegvallende stoelen voor regie, middenpaden etc.)

Als er regelmatig terugkerende zalen bijzitten kun je er wel wat tijd aan besteden. Met evenementen in tenten, sporthallen etc. kun je inderdaad beter met blokken gaan werken.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
xtra schreef op vrijdag 11 juli 2008 @ 15:05:
Die 2000 rijen kun je nog wel een beetje optimaliseren met een bitpatroontje oid.
My Gawd :X
Begin daar in hemelsnaam niet aan; om dat soort flauwekul ooit nog fatsoenlijk te queryen wordt een HELL.

Voorbeeldje ter onderbouwing: schrijf eens een query die het aantal vrije plaatsen berekent op jouw "bitpatroontjes" manier ;)

[ Voor 19% gewijzigd door RobIII op 11-07-2008 15:21 ]

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


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:42

Creepy

Tactical Espionage Splatterer

2000 rijen is peanuts. Je zult toch per stoel moeten opslaan of deze gereserveerd is dus sla de stoelen dan ook gewoon 1 voor 1 op (dus ja, voor elke stoel 1 rij in je tabel).

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • xtra
  • Registratie: November 2001
  • Laatst online: 24-10 11:20
RobIII schreef op vrijdag 11 juli 2008 @ 15:07:
[...]

My Gawd :X
Begin daar in hemelsnaam niet aan; om dat soort flauwekul ooit nog fatsoenlijk te queryen wordt een HELL.
Sorry :P

Niet in de DB inderdaad. Eventueel (http) client/server communicatie (ik zie PHP staan ;) ) Als alternatief voor een xml-bestand met 50 bytes per stoel.

Neemt niet weg dat het doel soms de middelen heiligt. Dat hoeft niet meteen tot paniek te leiden.

  • benoni
  • Registratie: November 2003
  • Niet online
Het tekenen van de plattegronden zou ik in Adobe Illustrator doen, het gaat dan ongeveer zo:

- Je begint met één stoel te tekenen: zitvlak, armleuningen en rugleuning, groeperen. Die vorm kun je dupliceren met shift-alt-verslepen, met ctrl-D kun je die stap herhalen tot een rij vol is. Zo'n rij kun je vervolgens op zich weer dupliceren, shift-alt-verslepen, met ctrl-D herhalen tot een zaal vol is. Als je een zaal hebt waar de rijen rond lopen, dan kun je daarvoor ook hetzelfde trucje toepassen, één stoel duplicerend roteren en die stap herhalen. Een geoefend persoon doet zo een zaal in vijf minuten.
- Als alternatief daarvoor kun je ook een pi-font pakken (zoek op 'Home Decoration font') waarmee je stoelvormpjes als letters kunt intikken. In Illustrator kun je tekst met 'Create Outlines' omzetten naar tekening. Zo zou je dus regels vol stoelvormpjes kunnen tikken en daar in één keer tekening van kunnen maken.
- Met het URL tekstvak in het attributes palette kun je de stoelen genummerde links meegeven. Ik zou in Illustrator alleen de stoelnummers invullen, en later met een zoek-vervang commando in de source code de rest van de URL's aanvullen.
- Met 'Save for web' kun je het geheel dus exporteren als een JPG met HTML image map.
- Vergeet niet ook een standaard Illlustrator- of PDF bestand te bewaren voor hergebruik.

Ongeveer hetzelfde kun je doen met Inkscape of een bouwkundig tekenpakket, maar dan moet je wat meer zelf knutselen om er een HTML image map o.i.d. van te maken.

  • KoosDijk
  • Registratie: Januari 2008
  • Laatst online: 16-11 20:38
Creepy schreef op vrijdag 11 juli 2008 @ 15:10:
2000 rijen is peanuts. Je zult toch per stoel moeten opslaan of deze gereserveerd is dus sla de stoelen dan ook gewoon 1 voor 1 op (dus ja, voor elke stoel 1 rij in je tabel).
Heb net wat getest met MySQL, en inderdaad, dat gaat prima! Nu moet je er geen ingewikkelde JOINS op uitvoeren, maar een select van alles kost hier 0.005 sec's. Lijkt me redelijk te doen. Hoe het zit qua load kan ik zo niet zien...

Roy-T: Dat lijkt me inderdaad een best redelijke oplossing.
Misschien is het ook handig als je nog als achtergrond een plattegrond kan gebruiken veel bedrijven hebben die wel en dan hebben ze een goed achtergrondje, werkt beter .
Dat je 'eroverheen' tekent? Inderdaad, prima plan :).

Hoe moeilijk zal het zijn om een zwart/wit plattegrond vanuit een image te kunnen laden, en die zwarte lijnen eruit te herkennen en in het programma op te nemen als lijnen? (Sort of OCR)

Het teken-gedeelte wordt gebouwd in C#. Wel zo handig, en die tekenfuncties zijn redelijk simpel in te bouwen :P.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
KoosDijk schreef op vrijdag 11 juli 2008 @ 15:57:
Het teken-gedeelte wordt gebouwd in C#. Wel zo handig, en die tekenfuncties zijn redelijk simpel in te bouwen :P.
In dat geval: wat ik wel eens heb gedaan is gewoon een listview pakken (weergave op small/large icons), die een background image geven (plaatje van de plattegrond) en dan een bak iconen er op pleuren (+ en - knopjes eventueel). Dan heb je in een paar regels code een complete "pleur hier je stoeltjes"-tool. Met wat creativiteit kun je dan natuurlijk ook complete rijen enzo toevoegen en ze alignen op grids e.d. Het enige wat je moet onthouden is de x/y (en evt. rotatie) van een stoeltje. Ik zou niet eens gaan voor 360 graden 'vrije rotatie' maar gewoon in increments van 45 (of 30) graden; op die manier kom je ook weg met maar een paar icoontjes en is in 99.9% van de gevallen afdoende.

En ja, 2000 stoelen is een pokkewerk, maar het is doorgaans wel eenmalig en ik denk dat je je nu veel te veel gedoe op de hals haalt (lijnen herkennen, radiussen van cirkels etc.). Als je (bijv.) 2x2 of 4x4 px iconen gebruikt kun je er heel wat op een scherm kwijt (en daarbij zorgt de listview voor het scrollen van het canvas voor grotere oppervlakken). Paar knopjes ("maak blok 10x10", of "maak blok x bij y") die een blok stoeltjes (icons) invoegt en je kunt (met multiselect) meteen het hele blok sleuren en pleuren. Dan is het voor de gebruiker nog een kwestie van het teveel aan stoeltjes weer deleten aan de edges of eventueel de stoeltjes in een 'mooie vorm' slepen et voila.

Voor degeen die het 'invoert'; ach het is effe pielen maar 2000 stoeltjes zijn nou ook weer niet zo veel werk als je interface een klein beetje helpt her-en-der.

edit:
Come to think of it; je zou natuurlijk met multiselect een 'rijtje' stoelen kunnen selecteren en met een bezier curve wat kunnen 'buigen' zodat de plaatsing wat 'rond' is voor zalen zoals (effe googlen :P ) deze of deze. Dus je selecteert een rij stoelen en 'rekt' dan die rij als een elastiekje. Dat is een leuke aanvulling misschien, maar al met al zou het niet meer dan een paar pagina's code moeten zijn.

Anders kun je een plattegrond ook nog verdelen in 'hoofdvakken' (zoals hier en die los, 1 voor 1, kunnen laten vullen met stoeltjes. Voordeel is dan weer dat je ze makkelijk als 'template' kunt gebruiken als je eenmaal een vak hebt (dat kan anders toch wel, met copy/paste op een selectie van stoeltjes) en dat je een vak wat 'abstracter' kunt maken (dus niet zo in detail hoeft). En je kunt per vak een aantal gereserveerde/vrije stoeltjes weergeven, zodat ik niet in een overvol vak terecht kom :P

[ Voor 36% gewijzigd door RobIII op 11-07-2008 16:42 ]

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


  • benoni
  • Registratie: November 2003
  • Niet online
KoosDijk schreef op vrijdag 11 juli 2008 @ 15:57:
Hoe moeilijk zal het zijn om een zwart/wit plattegrond vanuit een image te kunnen laden, en die zwarte lijnen eruit te herkennen en in het programma op te nemen als lijnen? (Sort of OCR)
Als je die achtergrondjes van allerlei theaters krijgt opgestuurd, reken er dan maar op dat dit zo goed als onmogelijk is. Van de één krijg je een bouwtekening met dunne lijntjes, van de ander krijg je een baggerscannetje waarop de stoelen niet groter zijn dan 4 dichtgelopen pixels.

Ik zou óf zelf fatsoenlijke plattegrondjes laten maken met een echt tekenprogramma (zodat je de vrijheid hebt om er waarheidsgetrouwe plattegrondjes van te maken, maar wel voor een consistente vormgeving en kleurgebruik kunt zorgen), óf iets maken wat simpel en beperkt is zoals RobIII's voorstel, en dan zo dat je die eenvoud juist uitbuit voor een beter overzicht. Een wat abstractere vorm waar de stoelen gewoon recht op een rijtje staan in plaats van precies zoals in het theater kan voor de bezoekers beter bruikbaar zijn dan een waarheidsgetrouwe plattegrond waar de stoelnummers minder goed zijn af te lezen (denk aan de spoor- en metrokaarten op 45º grid, die zijn van een afstandje veel duidelijker uitleesbaar).

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 21:39

mulder

ik spuug op het trottoir

Misschien is Visio hier interessant, dan kun je de plattegrond ook interactief maken dmv smartshapes.

oogjes open, snaveltjes dicht


  • benoni
  • Registratie: November 2003
  • Niet online
Ik zocht net op 'Javascript SVG editor', daar kwamen ook heel aardige web-interfaces uit, zoals richdraw.
Stel dat je die een beetje zou aanpassen, dat je maar één object kunt tekenen: een stoelenrij. Als je deze plaatst bestaat de rij uit één stoel. Functioneel gezien is het een table met repeated background image. In de tabelheader en de tabelcel(len) zitten tekstvelden, waar je resp. het rijnummer en het stoelnummer in kunt zetten. Je zorgt voor [+] en [-] knopjes waarmee de geselecteerde stoelenrij kan worden aangepast (tabelcel erbij/eraf), waarbij de stoelnummers vanzelf opnummeren. Ik zou voor het automatisch nummeren een selector in de menubalk doen (-2, -1, 0, +1, +2, A..Z, Z..A) want theaters hebben daarvoor verschillende systemen. Daarnaast maak je knopjes waarmee de actieve stoelenrij wordt gedupliceerd, waarbij uiteraard ook de rij- en stoelnummers opnummeren. Zo heb je een aardig gebruiksvriendelijke interface waarmee iedereen op een snelle, intuïtieve manier een indeling kan maken.
KoosDijk schreef op vrijdag 11 juli 2008 @ 14:33:
Om nou in XML-formaat in 1 cel alles op te slaan en dat te verwerken in PHP lijkt me ook redelijk traag.
XML of JSON zou wel handig zijn als je nog even geen tijd hebt voor een grafische interface en met de hand snel indelingen wilt maken...

code:
1
2
3
4
5
6
groepen:[
 { label:'Linkerbalkon', prefix:'L', rijen:[
  { label:'LB', stoelen:[-1, 19, 'aflopend', 10 ] },
  { label:'LA', stoelen:[-1, -2, 9, 'aflopend', 1 ] }
 ] }
]


Waarbij dan de negatieve nummers open ruimte aangeven: '-1' is een hele stoelbreedte, '-2' is een halve stoelbreedte, '-3' is een derde stoelbreedte, enzovoort. Zo heb je wat flexibiliteit ingebouwd om het inspringen van de stoelenrijen aan te geven, of een plaats waar een pilaar zit of zo. Met een importscriptje kun je in no time zo'n XML- of JSON indeling in een database omzetten.

  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 14-11 08:31

MicroWhale

The problem is choice

Praktische vraagstukken:
Hoe ga je ervoor zorgen dat de stoelen in de werkelijkheid overeenkomen met de stoelen die in je systeem zitten?
Wat als er één stoel minder is neergezet?
Ga je controleren of het klopt wat er staat?
Zijn de stoelen vast of los?
Hoe loopt de nummering bij losse stoelen? (en is deze aan te passen? Wat als je één stoel toevoegt, wat gebeurt er met je reserveringen?)
Hoe neem je de nummering van vaste stoelen (bijv. theater) over?

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
MrWilliams schreef op woensdag 06 augustus 2008 @ 08:16:
Hoe ga je ervoor zorgen dat de stoelen in de werkelijkheid overeenkomen met de stoelen die in je systeem zitten?
Lijkt me de verantwoordelijkheid van degene die ze in het systeem zet. Of wou je een foto nemen en die laten analyseren door het systeem ofzo? Je zult ergens de verantwoordelijkheid moeten neerleggen en tenzij je (hey idee :P ) je iedere stoel wil gaan bekabelen zal dat bij de gebruiker liggen.
MrWilliams schreef op woensdag 06 augustus 2008 @ 08:16:
Wat als er één stoel minder is neergezet?
Again: verantwoordelijkheid van degene die ze invoert...
MrWilliams schreef op woensdag 06 augustus 2008 @ 08:16:
Ga je controleren of het klopt wat er staat?
Zie voorgaand...
Dat boeit toch niet? Stoel = stoel. Reservering voor een stoel = reservering voor een stoel. Of die nou vast of los zijn...
MrWilliams schreef op woensdag 06 augustus 2008 @ 08:16:
Hoe loopt de nummering bij losse stoelen? (en is deze aan te passen? )
Again, verantwoordelijkheid van degene die ze invoert.
MrWilliams schreef op woensdag 06 augustus 2008 @ 08:16:
Wat als je één stoel toevoegt, wat gebeurt er met je reserveringen?
Dan geeft je count(stoelen) gewoon 1 meer terug en kun je dus 1 reservering meer kwijt??
MrWilliams schreef op woensdag 06 augustus 2008 @ 08:16:
Hoe neem je de nummering van vaste stoelen (bijv. theater) over?
Begin en eind van (bijv.) een rij selecteren en begin/eind nummers invoeren en met een for-lusje de tussenliggende stoelen nummeren? Evt. met een 'step' zodat je bijvoorbeeld 2, 4, 6, 8... kunt nummeren. Of stoel voor stoel invoeren? Of...<verzin iets>

Ik denk dat je problemen ziet/maakt die er niet zijn.

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


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 14-11 08:31

MicroWhale

The problem is choice

RobIII schreef op woensdag 06 augustus 2008 @ 09:58:
[...]

Lijkt me de verantwoordelijkheid van degene die ze in het systeem zet. Of wou je een foto nemen en die laten analyseren door het systeem ofzo? Je zult ergens de verantwoordelijkheid moeten neerleggen en tenzij je (hey idee :P ) je iedere stoel wil gaan bekabelen zal dat bij de gebruiker liggen.
... en wat kan het systeem doen om die verantwoordelijke daarmee in zijn taak te assisteren? hoe ver worden de verantwoordelijkheden van de persoon door het systeem opgevangen/gedelegeerd?

vrij belangrijke vragen voor het ontwerp.
Dat boeit toch niet? Stoel = stoel. Reservering voor een stoel = reservering voor een stoel. Of die nou vast of los zijn...
Vast/Los maakt hier ook uit, omdat de risico's mbt problemen aanzienlijk kleiner zijn. Losse stoelen kunnen door mensen verplaatst worden. Meer risico => escalatieschema's. Wat doe je in zo'n geval? Hoe vang je dit in het systeem op? (het systeem spreekt niet de absolute waarheid)
Dan geeft je count(stoelen) gewoon 1 meer terug en kun je dus 1 reservering meer kwijt??
... en welk nummer krijgt die stoel dan als deze tussen gereserveerde stoelen 349 en 350 geplaatst wordt? (even aangenomen dat er stoelen opeenvolgend genummerd worden)
Begin en eind van (bijv.) een rij selecteren en begin/eind nummers invoeren en met een for-lusje de tussenliggende stoelen nummeren? Evt. met een 'step' zodat je bijvoorbeeld 2, 4, 6, 8... kunt nummeren. Of stoel voor stoel invoeren? Of...<verzin iets>
Je maakt de aanname dat stoelen op deze manier genummerd gaan worden. Andere opties zijn: 1,3,5,7;1a,1b,1c,1d;a,b,c,d;1,2,3,4;etc....

met andere woorden: Je geeft hierboven aan precies te weten wat de opdrachtgever wil. Eerst vragen stellen (zie mijn post), dan pas gaan ontwerpen/bouwen.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
MrWilliams schreef op vrijdag 08 augustus 2008 @ 11:51:
met andere woorden: Je geeft hierboven aan precies te weten wat de opdrachtgever wil. Eerst vragen stellen (zie mijn post), dan pas gaan ontwerpen/bouwen.
Ho ho ho; ik pretendeer helemaal niet precies te weten wat de opdrachtgever wil; dat is juist (en dat ben ik dus met je eens) iets wat je dus eerst moet uitzoeken en dat is een taak voor de TS. Ik mag er alleen van uit gaan dat dat al gedaan is en dat TS zelf rekening houdt met dat soort zaken. Dat was namelijk helemaal de vraag niet en daarbij had het dan in de TS vermeld moeten worden. Ik zeg alleen dat je (zo ook met deze post) een heleboel problemen zoekt/creëert die er misscien niet (of nog niet) zijn en dan voorzie ik nu alvast weer een compleet over-engineerd stuk software dat gewoon een zaal van 50 stoeltjes moest nummeren en weergeven ;)
MrWilliams schreef op vrijdag 08 augustus 2008 @ 11:51:
Vast/Los maakt hier ook uit, omdat de risico's mbt problemen aanzienlijk kleiner zijn. Losse stoelen kunnen door mensen verplaatst worden. Meer risico => escalatieschema's. Wat doe je in zo'n geval? Hoe vang je dit in het systeem op? (het systeem spreekt niet de absolute waarheid)
Euh, ik begreep "vast aan elkaar" :P My bad :X Je bedoelt een 'vaste plek' ;)

[ Voor 31% gewijzigd door RobIII op 08-08-2008 12:05 ]

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


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 14-11 08:31

MicroWhale

The problem is choice

Nofi. :)

In andere woorden: voor het beantwoorden van TS zijn vraag heb je m.i. toch wat meer reqs. nodig dan die gegeven zijn. Vandaar mijn vragen.

Een oplossing zonder verder aan requirements te denken zou zijn:
zaalvak-polygonen tekenen waarin automatisch stoelen geplaatst worden. Stoelen zijn hierbij vooraf door een expert-gebruiker gedefinieerde stoel-polygonen die zo efficient mogelijk over het zaalvak-polygon heengelegd worden. Het zaalvak-polygon bevat informatie over het gewenste vul-patroon (stoelrichting*, nummering, binnen-buitenmarges en of er over de rand geplaatst mag worden (en hoeveel/ver).

*Voor kromme rijen (theater): één spline (of deel van cirkel) door het vak om de veranderende richting van de stoelen aan te geven.

Usability:
- Voor de volledigheid kunnen er ook zaal-polygonen bij gemaakt worden om het geheel wat beter definieerbaar te maken.
- Voor de reserveer-gebruiker een klikbare, meer op een stoel lijkende poly gebruiken dan die gebruikt wordt voor het vul-algoritme.
- houd opties voor gebruik van een algoritme en het volledig handmatig plaatsen van stoelen.

Tip: Er zijn standaardalgoritmes die dit soort dingen (in basis) kunnen dus ga niet opnieuw het wiel uitvinden! Kijk eens op mathworld.com

[ Voor 3% gewijzigd door MicroWhale op 18-08-2008 12:55 ]

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • benoni
  • Registratie: November 2003
  • Niet online
Ik zou helemaal niet met vul-algoritmes werken. Zoiets is uitstekend om voor een te ontwerpen zaal snel inzichtelijk te maken hoeveel stoelen erin passen, maar niet geschikt om een bestaande situatie (met allerlei mogelijke bijkomstigheden zoals hoogteverschillen in de vloer, pilaren, aanpassingen voor gehandicapten enzovoorts) snel en foutloos te kunnen mappen. Je krijgt dan net zoiets als dat je voor een Word-document van 200 pagina's een ander lettertype aangeeft, je moet een enorme hoop duw-, trek- en opvulwerk aan de polygoonlijnen verrichten. Dat werkt gewoon irritant, bijvoorbeeld dat je net als je links een rij stoeltjes eindelijk goed in de ruimte gepast hebt, dat er dan aan de rechterkant weer een rijtje wegvalt omdat de hele groep een pixel is opgeschoven.

  • mithras
  • Registratie: Maart 2003
  • Niet online
Ik neem aan dat van veel zalen al een plattegrond beschikbaar is. Als je in je systeem die inlaadt, dan kan de administratie de stoelen aangeven. Bijvoorbeeld blokken tekenen voor "zaal", "1e ring", "loges" etc. En stuk voor stuk de stoeltjes aangeven. Lijkt me vrij eenvoudig :)

Dus ontwerpen pakt een 2d tekening van de zaal en upload die naar de server met een webformuliertje. Op de volgende pagina is de tekening te zien en kan de gebruiker met de select-tool "stoel" de afzonderlijke stoelen aangeven in de tekening (zoals je in een fotobewerkingsprogramma de ogen selecteert voor een rode-ogen reductie tool). Op de achtergrond wordt de x/y positie t.o.v. de gehele 2d plattegrond berekend.

Na het opslaan komen alle stoelen in de database met de x/y waarde. Een gast kan de plattegrond opvragen en selecteren welke stoelen hij/zij wil reserveren voor een bepaald evenement.

  • benoni
  • Registratie: November 2003
  • Niet online
Op zich een goed plan, maar met alleen x-y coördinaten zonder verdere referentie kun je geen plaatsen naast elkaar laten reserveren door het systeem. Je zult dus wel met rij-verzamelingen moeten werken, bijvoorbeeld door de stoelcirkeltjes bij het aanklikken automatisch te verbinden met een koppelingslijn (die je kunt verbreken om de rij af te sluiten).

  • mithras
  • Registratie: Maart 2003
  • Niet online
benoni schreef op maandag 18 augustus 2008 @ 13:38:
Op zich een goed plan, maar met alleen x-y coördinaten zonder verdere referentie kun je geen plaatsen naast elkaar laten reserveren door het systeem. Je zult dus wel met rij-verzamelingen moeten werken, bijvoorbeeld door de stoelcirkeltjes bij het aanklikken automatisch te verbinden met een koppelingslijn (die je kunt verbreken om de rij af te sluiten).
Je kan het zo moeilijk maken als je wil ;)

In de eerste alinea spreek ik ook van blokken. Het zou mooi zijn om bijvoorbeeld ook 1e, 2e en 3e rang te kunnen onderscheiden. En dan verder nog rijnummers aan te geven (waaruit volgt dat de incrementeel genummerde stoelen naast elkaar staan, bijvoorbeeld).

  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 14-11 08:31

MicroWhale

The problem is choice

mithras schreef op maandag 18 augustus 2008 @ 13:55:
[...]
Je kan het zo moeilijk maken als je wil ;)

In de eerste alinea spreek ik ook van blokken. Het zou mooi zijn om bijvoorbeeld ook 1e, 2e en 3e rang te kunnen onderscheiden. En dan verder nog rijnummers aan te geven (waaruit volgt dat de incrementeel genummerde stoelen naast elkaar staan, bijvoorbeeld).
Dit is dus een hele goede reden om meer requirements aan de TS te vragen.

Als je niet weet wat er precies gemaakt moet worden kun je je fantasie er de vrije loop op laten gaan. Dit komt het resultaat vaak niet ten goede.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.

Pagina: 1