Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > Профиль Жуковского


Автор: Merhaba 24.11.2013, 19:33
Добрый вечер! Помогите Пожалуйста исправить код. Рисует профиль Жуковского в левом верхнем углу экрана, а надо в центре.
Код

logical(4)::d
integer(4)::status
real(8)::Xmin, Xmax, Ymin, Ymax, p, q 
real(4)::beta1
type (windowconfig) wc
type (wxycoord) wxy
 
 
d=GETWINDOWCONFIG(wc); p=wc.numxpixels; q=wc.numypixels
window.Xmin=-0.5d0*line_str.length*L_ref;     Xmin=window.Xmin
window.Xmax=+0.5d0*line_str.length*L_ref;     Xmax=window.Xmax
window.Ymin=-0.5d0*line_str.length*L_ref*q/p; Ymin=window.Ymin
window.Ymax=+0.5d0*line_str.length*L_ref*q/p; Ymax=window.Ymax
 
status = SETWINDOW(.TRUE., Xmin, Ymin, Xmax, Ymax)
 
    call clearscreen($gclearscreen)
    status=setcolor(15)
    status=rectangle_w($gfillinterior,Xmin,Ymax,Xmax,Ymin)
    status=setcolor(ellips%color)
 
        pi=4.*atan(1.)
        c=100 
        a=110 
        beta1=0.02
        step=2*pi/200
        aa=a*sin(beta1)
        bb=a*cos(beta1)-c
        xm=sqrt(aa*aa+bb*bb)
        delta=atan(aa/bb)
        
 
do o=0.,2*pi,step
 
        x=xm*cos(delta)+a*cos(o)
        y=xm*sin(delta)+a*sin(o)
        r=x*x+y*y
        if (r.ne.0.) then
        xi=x*(1.+c*c/r)
        et=y*(1.-c*c/r)
 
        status=setpixel(xi,et)
 
        end if
 
        end do 


    

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)