On 4/1/21 5:47 PM, D.M. Procida wrote: > D.M. Procida <real-not-anti-spam-addr...@apple-juice.co.uk> wrote: > >> Hi everyone, I've created <https://github.com/evildmp/C-is-for-Camera> - >> a representation of a Canonet G-III QL17 in Python. >> >> There's also documentation: <https://c-is-for-camera.readthedocs.io>. >> >> It's a pure Python model of the physical sub-systems of a camera and >> their interactions. So far it's at a fairly high level - I haven't yet >> got down to the level of individual springs and levers yet. > I'm now working on the exposure system, which in the published version > so far just models inputs and outputs of the system as a whole. I want > to start to model its functionality by modelling the interactions of its > components - the levers, cams and so on. > > It seems to me I have fundamentally two approaches that I could take: > > The first is to model the movement of each lever as a series of discrete > steps (hundreds of tiny steps, to maintain accuracy). Pro: it models > movement through physical positions; con: it's ugly that it breaks > continuous movement into arbitrary steps. > > The second is not to move each lever in such detail, but to consider its > interactions: given the state of each of the other parts of the system, > what *would* be the outcome if something were to try to move the lever > from such-and-such a position to another? Pro: it feels more elegant > than the brute-force stepping of the alternative; con: it also feels > like a bit of a cheat. > > But neither approach really captures for me the interaction of moving > analog components, which in the case of this camera also have some > circular logic to them - the movement of A determines that of B which > determines that of C which determines that of D which finally also > affects the movement of A. > > Any thoughts or wise ideas? > > Daniele
If you keep track of the positions as a floating point number, the precision will be more than you could actually measure it. -- Richard Damon -- https://mail.python.org/mailman/listinfo/python-list