示例#1
0
        public Form1()
        {
            InitializeComponent();
            fractal = new Fractal <MandelbrotSet, Sprite>(new OpenGLPainter(), openGLRender1.Size);

            fractallnfo = new Fractallnfo <MandelbrotSet, Sprite>(new OpenGLPainter(), openGLRender1.Size);
            fractallnfo.ComplexRectange = new RectangleF(-0.7714677975501545f, 1.3759945057056568f, 0.7791495198902606f, 0.7791495198902606f);
            //fractallnfo.ComplexRectange = new RectangleF(-2,2, 4,4);
            fractallnfo.Draw(0, 0);
        }
示例#2
0
        public LinkedListNode <Fractallnfo <TFractal, TDraw> > AddState(LinkedListNode <Fractallnfo <TFractal, TDraw> > node, Rectangle area)
        {
            var complexRectange   = node.Value.ComplexRectange;
            var pixelRectange     = node.Value.PixelRectangle;
            var newBasisWeightByX = complexRectange.Width / pixelRectange.Width;
            var newBasisWeightByY = complexRectange.Height / pixelRectange.Height;

            RectangleF newBasis = new RectangleF(
                complexRectange.Left + area.Left * newBasisWeightByX,
                complexRectange.Top - area.Top * newBasisWeightByY,
                newBasisWeightByX * area.Width,
                newBasisWeightByY * area.Height);
            var newScaleX = (float)node.Value.ScaleByAxisX / ((float)pixelRectange.Width / area.Width);
            var newScaleY = (float)node.Value.ScaleByAxisY / ((float)pixelRectange.Height / area.Height);

            Fractallnfo <TFractal, TDraw> fractallnfo = new Fractallnfo <TFractal, TDraw>(_painter, _canvasSize);

            fractallnfo.ComplexRectange = newBasis;
            fractallnfo.Draw(newScaleX, newScaleY);
            return(AddAfter(node, fractallnfo));
        }