Dobrý deň, Pracujem na simulátore časticového systému, VS Ult 2010, XNA 4. Mám vytvorené dve priestory, časticový(akoby world space) a screen space.Transformujem to touto funkciou(z časticového do screen):
public Vector2 Project(Vector2 position)
{
return position * Scale + new Vector2(GraphicsDevice.Viewport.Width / 2, GraphicsDevice.Viewport.Height / 2) - new Vector2(tex.Width / 2, tex.Height / 2) + DeltaPos;
}
Prípadne môžem uviesť aj inverznú funkciu, ak by to pomohlo. Všetko funguje, ale chcel som dodať funkciu automatickej zmeny transformačných koeficientov(Scale a DeltaPos) tak, aby boli vždy viditeľné všetky častice.Niekedy je otravné meniť tieto parametre manuálne. Problém mám s nájdením správnych rovníc na zistenie týchto koeficientov.Skúšal som spočítať bounding rectangle, podielom odhadnúť Scale a transformovať stred bounding rectangle do screen space, ale nevyšlo to.Aktivovaním funkcie všetko zmizlo. Vedel by mi niekto poradiť, ako správne implementovať tú funkciu ?
|