Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2018, 13:44   #1
илья123456
Пользователь
 
Регистрация: 14.05.2014
Сообщений: 29
По умолчанию программирование в матлабе

Всем привет. Есть такой код на матлабе, но у меня не выходит сделать так чтобы после нажатия кнопку Fractal, а потом Zoom и потом снова Fractal увеличивалась та область которую выделили. мое предположение что нужно исправить
Код:
 case 3
            set(gcf,'Units','normalized')
            k = waitforbuttonpress;
            rect_post = rbbox;
            %annotation('rectangle',rect_pos,'Color','red') /(16*xmax)
         
           xmax=rect_post(1)/xmax*xmin
           ymax=rect_post(2)/ymax*ymin
           xmin=-xmax
           ymin=-ymax
этот блок а именно
Код:
   xmax=rect_post(1)/xmax*xmin
           ymax=rect_post(2)/ymax*ymin
           xmin=-xmax-rect_post(3)
           ymin=-ymax-rect_post(4)
тут мои попытки
Код:
clc
clear
n=400; %размер окна
m=50; %количество итераций
colormap(hsv(m));
close all
xmin=-2;
xmax=2;
ymin=-2;
ymax=2;
while true
    switch menu ('Menu', 'Test','Fractal', 'Zoom','Reset','ZOOM','Quit')
        case 1
            c=4*(rand-.5)+2*1i*(rand-.5);
            n=50;
            y=rand(3);
            z=zeros(n,1);
            for i=2:n
                z(i)=z(i-1)^2+c;
            end
            i=0;
            plot(c)
            grid
            shg
            axis equal
            title(num2str(c))
            
        case 2
            if abs(xmax-xmin)>abs(ymax-ymin)
                d=(xmax-xmin)/n;
                %nx=n;
                %ny=(ymax-ymin)*nx/(xmax-xmin);
            else
                d=(ymax-ymin)/n;
               % ny=n;
              % nx=(xmax-xmin)*ny/(ymax-ymin);
            end
           
            [X,Y] = meshgrid(xmin:d:xmax,ymin:d:ymax);
            C=X+1i*Y;
            %zeros(size(C));
            Z=zeros(size(C));
            Q=Z;
            for i=1:m
                % Z[i]=Z(i-1)*Z(i-1)+C;
                Z=Z.^2+C;
                %isinf(Z);
                Q=Q+isinf(Z);
            end
            L=abs(Z)<inf;
            image(Q); shg;
            
            % plot(C(L),'.'), grid,
        case 3
            set(gcf,'Units','normalized')
            k = waitforbuttonpress;
            rect_post = rbbox;
            %annotation('rectangle',rect_pos,'Color','red') /(16*xmax)
         
           xmax=rect_post(1)/xmax*xmin
           ymax=rect_post(2)/ymax*ymin
           xmin=-xmax
           ymin=-ymax
               
        case 4
            xmin=-2;
            xmax=2;
            ymin=-2;
            ymax=2;
       
        case 5
              zoom 
        otherwise
            break
    end
end
кто знает или сталкивался с этим помогите)
илья123456 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График в Матлабе H.D. Помощь студентам 0 02.01.2015 10:49
Программа на матлабе -Vinchester- Помощь студентам 0 05.05.2013 12:47
Рекурсия в матлабе Vovochka77 Помощь студентам 0 18.04.2012 20:19
График в Матлабе kop Помощь студентам 2 30.01.2011 16:16
приложения в Матлабе Kracozebr Помощь студентам 0 09.08.2010 22:27