Moleculen tekenen met python
-
- Berichten: 3
Moleculen tekenen met python
Helaas ben ik weereens veel te laat begonnen aan een taak en vroeg me nu het volgende af:
1. Hoe ontleed je een tupel zo effectief mogenlijk om vervolgens op elke aparte string een functie toe te passen.
2. Doormiddel van vpython moeten we spheren, die atomen voorstelllen, tekenen. Nu gezien moleculen bestaan uit atomen moeten we de verschillende atomen naast elkaar tekenen op de x-as.
Mijn plan hiervoor: Opdat een atoom 1 met middelpunt (x,y,z) grenst aan een atoom2 volstaat het toch om als middelpunt voor atoom2 (straal(atoom2)+ straal(atoom1),y,z) te kiezen. Omdat dit moet gelden voor een hele rij atomen moet men dus enkel bij de straal van het atoom zelf, de straal van het vorige optellen.
De vraag: hoe schrijf men dat 2 spheren elkaar grensen (is hier een methode voor of ingebakken functie) in vpython
Hoe maak je een functie op de index van een tupel + diezelfde functie op de vorige index in het tupel. (Python antwoord met steeds in de for-lus dat i+1 niet mag)
Hartstikke bedankt op voorhand
1. Hoe ontleed je een tupel zo effectief mogenlijk om vervolgens op elke aparte string een functie toe te passen.
2. Doormiddel van vpython moeten we spheren, die atomen voorstelllen, tekenen. Nu gezien moleculen bestaan uit atomen moeten we de verschillende atomen naast elkaar tekenen op de x-as.
Mijn plan hiervoor: Opdat een atoom 1 met middelpunt (x,y,z) grenst aan een atoom2 volstaat het toch om als middelpunt voor atoom2 (straal(atoom2)+ straal(atoom1),y,z) te kiezen. Omdat dit moet gelden voor een hele rij atomen moet men dus enkel bij de straal van het atoom zelf, de straal van het vorige optellen.
De vraag: hoe schrijf men dat 2 spheren elkaar grensen (is hier een methode voor of ingebakken functie) in vpython
Hoe maak je een functie op de index van een tupel + diezelfde functie op de vorige index in het tupel. (Python antwoord met steeds in de for-lus dat i+1 niet mag)
Hartstikke bedankt op voorhand
- Berichten: 3.963
Re: Moleculen tekenen met python
Verplaatst naar programmeren.
"Success is the ability to go from one failure to another with no loss of enthusiasm" - Winston Churchill
- Berichten: 6.905
Re: Moleculen tekenen met python
Kan je iets specifieker da vragen toelichten. Desnoods met een stukje voorbeeld code. Ik, en nog wat mensen op dit forum, kennen wel wat van python maar niet echt iets van moleculen. Je moet dus specifieker zijn.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
-
- Berichten: 3
Re: Moleculen tekenen met python
Code: Selecteer alles
def teken_atoom(atoom,x,y,z):
from visual import sphere
atoom=PeriodicSystem.getAtom(atoom)
return sphere(pos=(x,y,z),radius=atoom.radius)
def teken_molecule(tuple):
for i in tuple:
atoom=PeriodicSystem.getAtom(i)
return teken_atoom(i,atoom.radius+radius[i+1],0,0)
Code: Selecteer alles
teken_atoom('P',0,0,0)
<vis.primitives.sphere object at 0x03AD0EA0>
Hoe vermeld je dus dat de waarde van de x-coordinaat, de som is van een functie (atoom.radius) toegepast op de vorige index + diezelfde index ?
De afstand tussen 2 ballen wanneer ze zich raken is de som van de 2 stralen. Je begint met 'P' te tekenen voor een vast midelpunt en dan wil je 'O' tekenen op dusdanige wijze dat deze 'P' raakt. Dit is immers niets anders dan in de x-coordinaat de straal van 'P' te nemen en deze toe te voegen aan de straal van 'O'.
- Berichten: 6.905
Re: Moleculen tekenen met python
Code: Selecteer alles
def teken_molecule(tuple):
for i in tuple:
atoom=PeriodicSystem.getAtom(i)
return teken_atoom(i,atoom.radius+radius[i+1],0,0)
Het blijft vrij vaag.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
-
- Berichten: 3
Re: Moleculen tekenen met python
Hoe programmeer je naar het vorige index in een tupel te gaan en daar een funtie op toe te passen. De waarde van deze functie op die string moet worden opgeteld bij diezelfd functie op de index zelf.
Stel ('p','o','s') een functie zet 'p' om in een getal, 'o' om in eeg getal en 's' om in een getal. M.a.w hoe ontleed ik een tupel en pas vervolgens een functie toe op de aparte strings.
Dan bij het getal van o moet het getal van p worden opgeteld. Zie je ? de functie op de index van een tupel opgeteld bij de functie op de vorige index.
Stel ('p','o','s') een functie zet 'p' om in een getal, 'o' om in eeg getal en 's' om in een getal. M.a.w hoe ontleed ik een tupel en pas vervolgens een functie toe op de aparte strings.
Dan bij het getal van o moet het getal van p worden opgeteld. Zie je ? de functie op de index van een tupel opgeteld bij de functie op de vorige index.