Vinnaren i pepparkakshustävlingen!
2018-02-18, 21:14
  #1
Medlem
Hej!
Jag vill veta om följande är möjligt.
Jag söker en programvara eller någon som vet hur man skriver ett program som utifrån 3D-modeller/former kan få ihop en kub eller liknande?
Mitt EXEMPEL:
- 200 st tärningar (för rollspel) som har 4,6,8,10,12 och 20 sidor är inscannade som 3D-modeller.
- Jag vill bygga en kub med ett specifikt yttermått som kräver ca 50-60 tärningar(av dessa 200 st). Ca 4*4 tärningar i bottenlagret, sen ca 4 "våningar " högt.
- Det viktiga är att sidorna blir raka/släta(en del glipor är ok), innandömet kan också tillåtas ha lite "tomrum", men allt måste hålla ihop kuben så kuben kan stå och hålla ihop.
- Jag tänker mig att jag lägger/placerar 1:a modellen(tärningen),sen skall programmet välja ut de tärningar som passar bäst och "bygga " hela kuben.

Jag kan verkligen inget om programmering kring detta, eller ha några kunskaper i hur man löser detta problem.
Ett liknande, annat exempel är en kamera som tittar(och scannar in varje bit) på ett IQ-pussel från t ex Lonpos(Googla...).
Som vet att det skall bli t ex Pyramid, och sedan "får ihop det".

Kan någon hjälpa mig få inblick i detta?

Tack på förhand!
Citera
2018-02-18, 21:21
  #2
Medlem
Javisst, det ska ju vara möjligt.

Du skrev dock aldrig reglerna för vilka tärningar som ska väljas. Men så länge det är logiskt så ska det absolut gå att bygga.

Vad du efterfrågar är väl lösningar på minst två problem om jag uppfattat det rätt, en lösning för att scanna in från bilder till ett strukturerat format och sen en lösning för att lösa "IQ-pusslet" utifrån det.

Inscanningen går att lösa med flera sätt, jag skulle väl rekommendera maskininlärning (det som folk till vardags kallar för "AI") för det, bildigenkänning har kommit mycket långt, och bestämda strukturer som tärningar m.m borde vara a walk in the park, relativt sett.

Lösningen för IQ-pusslet låter väl mer som ett roligt klassiskt programmeringsproblem och går säkert att lösa på flera olika sätt.


Jag känner inte till något färdigt sådant program och tror inte att det existerar, i alla fall inte öppet eller på "marknaden"
__________________
Senast redigerad av Daudodidi 2018-02-18 kl. 21:33.
Citera
2018-02-18, 22:53
  #3
Medlem
Har du en bild på en kub gjord av tärningar så att vi kan se hur slutresultatet kan tänkas se ut och om det ens är möjligt att skapa det du vill utifrån de regler som du satt upp.
En kub endast av T6 är för lätt så hoppa över den
__________________
Senast redigerad av e7andy 2018-02-18 kl. 22:55.
Citera
2018-02-19, 07:03
  #4
Medlem
Megaforces avatar
Enklast är nog att använda Matlab eftersom det finns en hel del stöd och tillägg för att räkna med 3D polygoner och objekt.

Ett problem med den tänkta modellen är att pga tärningarnas vinklar i hörnen så är det svårt att få en kub med jämna sidor med relativt få tärningar
Citera
2018-02-25, 21:57
  #5
Medlem
Hej igen!
Tack för era svar.
Ang inscanning ser jag heller inga problem.

Vad gäller byggandet av modellen(kuben) så är väl det utmaningen.
Jag väljer att svara på alla frågor jag ser.
1. Tanken är att programmet skall välja de tärningar(vidare kallar jag dem bitar) själv för att få ihop kuben. Jag kan inget om detta, men kanske får programmet prova bit för bit och se om det passar att bygga vidare på? Kanske bygga tusentals varianter och sen väja en?
2. Jag har ingen bild på kuben. Och det är inte viktigt, för i programmet skall jag kunna välja form(mått) på min modell som skall sättas ihop. Kub, "skokartong", L-element m fl. Endast ange yttermåtten.
3. Jag tänker både förenkla och kanske försvåra min utmaning...
4. Vi fokuserar endast på T4, T6 och T8. Bara för att minska på antalet vinklar på varje bit.
5. Men "slänger in" att dessa bitar finns i 3 storlekar, och varje storlek och bit finns i 3 varianter. Halvor, tredjedelar och fjärdedelar är bitarna också delade i. Där delningen sker av varje bit så blir det en stor och rak "snittyta". Detta gör att varje bit blir nästan unik.
6. "Reglerna" jag tänker på just nu är att:
- Ingen bit får glida ur kuben(modellen).
- Programmet ska placera varje bits största plana yta mot kubens yttermått.
- Det får självklart finnas vinklar på bitarna som går inåt.
- Det får också finnas glipor mellan bitarna.

Tips emottages på hur jag kan eller bör gå vidare...
Citera
2018-02-25, 23:02
  #6
Medlem
Guffel2s avatar
Osäker på om jag förstår vad du vill uppnå riktigt. Om vi bortser från att bitarna får ha tomrum mellan sig finns det ett givet antal kombinatorioner av geometriska former som uppnår detta. Går att läsa om här http://mathworld.wolfram.com/Space-F...olyhedron.html jag tänker mig vidare att det är lättare att konstruera detta pussel än att lösa det varför mitt förslag är att du låter datorn generera en solid massa av valda former för att sedan subtrahera en ytterkontur ifrån denna.
Citera
2018-03-06, 08:55
  #7
Medlem
Hej!
Tack för alla svar.
Yttermåtten varierar från fall till fall och måste matas in i beräkningen som inparametrar.
Bitarna i pusslet är fysiskt verkliga och skall scannas in.
Bitarna får ha mellanrum, men måste stabilt vila på varandra för att konstruktionen inte skall glida isär åt sidorna, och "hålla ihop".
Jag förväntar mig inte att någon på detta forum skall komma med en lösning, men jag uppskattar tips på hur jag skall gå vidare? Jag har själv ingen kunskap inom detta område eller programmering.
Vända mig till någon högskola?
Citera
2018-03-06, 18:57
  #8
Medlem
Citat:
Ursprungligen postat av BobsHund
Hej!
Tack för alla svar.
Yttermåtten varierar från fall till fall och måste matas in i beräkningen som inparametrar.
Bitarna i pusslet är fysiskt verkliga och skall scannas in.
Bitarna får ha mellanrum, men måste stabilt vila på varandra för att konstruktionen inte skall glida isär åt sidorna, och "hålla ihop".
Jag förväntar mig inte att någon på detta forum skall komma med en lösning, men jag uppskattar tips på hur jag skall gå vidare? Jag har själv ingen kunskap inom detta område eller programmering.
Vända mig till någon högskola?
Börja med att bygga ihop verkliga modeller av det du vill göra för att se vad som är möjligt att göra. En sak som behöver testas fram är vilken vinkel på bitarna som går att ha utan att de faller isär.
Det är också bra att ha verkliga modeller att visa upp för utvecklare så att de förstår vad det är du vill göra och vilka begränsningar som finns.
Citera
2018-03-11, 20:59
  #9
Medlem
Hej!
Här är ett verkligt exempel att visa upp >> https://www.3d-puzzlewelt.com/sv/pyr...RoCOoAQAvD_BwE
Och som jag beskrivit tidigare, är alla bitarna 3D-scannade och "tillgängliga".
Ponera att man har 5 ggr så många bitar och vill bygga en kub(jag anger måtten från gång till gång) istället, i liknade storlek som pyramiden.
Det är programmets uppgift.
Tar gärna emot fler tips hur jag skall ta mig vidare...
Citera
2018-03-11, 21:13
  #10
Medlem
Citat:
Ursprungligen postat av BobsHund
Hej!
Här är ett verkligt exempel att visa upp >> https://www.3d-puzzlewelt.com/sv/pyr...RoCOoAQAvD_BwE
Och som jag beskrivit tidigare, är alla bitarna 3D-scannade och "tillgängliga".
Ponera att man har 5 ggr så många bitar och vill bygga en kub(jag anger måtten från gång till gång) istället, i liknade storlek som pyramiden.
Det är programmets uppgift.
Tar gärna emot fler tips hur jag skall ta mig vidare...
Den stora skillnaden mellan det exemplet och det du vill göra är att bitarna i exemplet är gjorda för att passa ihop på ett visst sätt. Det du vill göra är att ta godtyckliga bitar och sätta ihop dem så bra det går. De behöver inte passa ihop precis som i exemplet utan det är ok med lite glipor och tomrum.
Citera
2018-03-12, 00:00
  #11
Medlem
Om bitarna skulle passa ihop precis utan glipor och hålrum så skulle problemet bli många gånger enklare eftersom programmet då kan utesluta vissa förgreningar när den testar sig fram vilka bitar som ska passa ihop.

3D-skanning är ett helt separat problem och är inget du behöver börja med nu. Det som är intressant är att få till en algoritm som kan se om en bit går att bygga med.

Programmet känner till yttermåtten på det som ska byggas och väljer en första bit och placerar ut. Kontrollerar att den passar. Den väljer sedan en ny bit. Placerar ut och kontrollerar att den passar. osv. Hamnar bitarna utanför yttermåtten eller bryter mot en annan regel så är den lösningen felaktig och man backar tillbaka ett steg och testar vidare. Det blir ett gigantiskt träd med mängder med grenar. Det är så jag hade angripet det.
Det är ett optimeringsproblem - kappsäcksproblemet.

Sök efter folk som tycker sånt här är kul att lösa. Matematiker och/eller programmerare låter vettigt.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback