[WPF] Selecteer een gerenderd object kan dat?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig een applicatie te ontwikkelen waarbij er o.a. een 3D model moet worden getekent (bijvoorbeeld een kubus of cilinder)
Ik zat er aan te denken om dit met WPF te doen, ik heb al mooie voorbeeldjes in XAML gezien, en ik neem aan dat ik ook wel dynamisch deze objecten kan tekenen (Aan de hand van coordinaten die ik uit een tekstfile lees)

MAAR....

Nadat het model op het scherm getekend is moet de gebruiker lijnen in het 3D model kunnen selecteren door er met de muis op te klikken. Weet iemand of dit soort technieken uberhaupt met WPF kan? Of kun je met WPF alleen een model renderen en is er geen interactie meer mogelijk met dit object?

Of moet ik voor het maken van zo'n soort programma misschien toch naar XNA Game studio kijken? M'n gevoel zegt van niet, maar ik kan geen voorbeelden op internet vinden van bijvoorbeeld een 3D tekenprogrammaatje gemaakt in WPF waarbij dus de getekende objecten achteraf ook weer geselecteerd kunnen worden...

Heeft iemand een idee?

Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 99% gewijzigd door SaphuA op 01-02-2022 16:45 ]


Acties:
  • 0 Henk 'm!

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

WPF heeft ingebouwde mogelijkheden voor 3D hit testing, dus het is zeker wel mogelijk om een interactieve 3D omgeving met WPF te maken. Zie bijvoorbeeld hier: http://blogs.msdn.com/wpf...05/18/3d-hit-testing.aspx

We adore chaos because we like to restore order - M.C. Escher


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
aha! dat hittesting is al een goeie tip. Ik ga hier eens verder naar kijken! Wat ik wil onderzoeken is of alle lijnen die zijn getekend (In mijn programma bestaat een 3D model altijd uit lijnen) ook als object weer te benaderen zijn, en dat ik bijvoorbeeld de kleur kan veranderen als iemand op de lijn klikt (Zodat de gebruiker ziet dat de lijn is geselcteerd)

Wat ik ook nog niet helemaal snap is het volgende: in XAML kan je helemaal een (3D) figuur definieren en voor zover ik begrijp wordt deze XAML ook gecompileerd. Maar hoe zit het dan als je de gebruiker in run-time ook wat lijnen wilt laten tekenen? En zijn die getekende lijnen ook benaderbaar als object?

Ik ben al geruime tijd aan het googelen op drawing / software / XAML / WPF in google om te kijken of er ooit al eens een simpel tekenprogramma in XAML is gemaakt. Het enige wat ik dan tegenkom is een 2D tekenprogrammaatje waarbij je een pen in de hand hebt en je gewoon vrije vormen kan tekenen, echter met deze getekende vorm kan je dan verder niets meer doen.

Ik wil dus echt een 3D figuur bestaande uit lijnen, circles, splines weergeven en ook gaan opslaan in mijn eigen formaat zodat een gebruiker zijn tekening ook kan gaan opslaan.

Omdat ik helemaal niks vind op internet (Of ik kan niet zoeken) ben ik dus een beetje huiverig of WPF wel de juiste keuze is om zoiets te maken. Dus als iemand tips heeft zijn deze heel welkom!

Acties:
  • 0 Henk 'm!

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 12-09 20:23

CodeIT

Code IT

Alles wat in je XAML staat kun je ook in code bereiken. XAML hoeft niet persé eerst te worden gecompileerd, het kan ook worden ingelezen met behulp van de XAMLReader.
Wat jij volgens mij wilt is een gebruiker de mogelijkheid geven zelf 3d objecten te laten tekenen. Dit is geen standaard functionaliteit in WPF, dus dat zul je zelf moeten schrijven. Je kunt er ook voor kiezen om je gebruikers de 3d modellen in een 3d pakket te laten tekenen, bijvoorbeeld in 3d studio max, blender of google sketchup. Voor deze programma's zijn exporters gemaakt die de 3d content om kunnen zetten naar XAML.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na nog wat verder te hebben geprobeerd en onderzocht ben ik nu zover dat ik begin te begrijpen dat je met XAML 3D objecten kan renderen, het is me gelukt om kubussen enzo in 3D te tekenen, en zelfs om een 3D object te hit-testen.

In de 3D omgeving van WPF kan ik wel lijnen tekenen, en zo dus een wireframe maken van bijvoorbeeld een kubus. Wat echter niet wil is de gebruiker 1 lijn uit deze kubus te laten selecteren! Dus net zoals in een CAD programma bijvoorbeeld. Het converteren van een lijn naar een gerenderd 3D object is geen optie!

Ook kan je geeneens een circle tekenen of een spline in de 3D omgeving!!!???
Ik zie hier alleen maar voorbeelden van in 2D, waarbij je dus alleen met X en Y coordinaten werkt.

Ik vind het raar, maar omdat zoiets in mijn ogen redelijk simpels niet eens mogelijk is in WPF moet ik denk ik voor mijn applicatie gaan kijken naar een heel andere techniek misschien DirectX of OpenGL?

In eerste instantie hoeft een gebruiker niet eens te kunnen tekenen! Het belangrijkste wat ik wil is gewoon simpel een wireframe van een 3D object tekenen. De informatie van deze lijnen ligt al vast in een text file die ik inlees. In WPF wil ik dan dus dynamisch de lijnen tekenen zoals deze zijn vastgelegd in de file.

De gebruiker moet echter bepaalde ljnen kunnen selecteren!

Dus Wie o Wie weet naar welke techniek ik moet kijken?
(Managed) DirectX lijkt me wel ingewikkelder, of is misschien het XNA framework ook wel geschikt??

Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 10-09 14:45
Tja, ik heb vrij goede ervaring met C++ in combinatie met OpenGL. Het is vrij eenvoudig, veel over te vinden, je kan je object eenvoudig draaibaar maken zodat je er omheen kan kijken, enz...

Dat was echter wel een aantal jaar geleden. Toch zijn er erg veel OpenGL tutorials te vinden.

Succes in ieder geval! :)
Pagina: 1