亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? textgraphlib.f90

?? Fortran 95程序設計【彭國倫】 Source_Code.rarFortran 95程序設計【彭國倫】 Source_Code.rar
?? F90
字號:
module TextGraphLib
  implicit none
  integer, save   :: ScreenWidth        ! 定義可以畫圖的畫面寬度
  integer, save   :: ScreenHeight       ! 定義可以畫圖的畫面高度
  character, save :: background  = ' '  ! 定義預設用來清除畫面的字元
  character, save :: CurrentChar = '*'  ! 定義預設用來畫圖的字元 
  character, save, allocatable :: screen(:,:)  ! 用來實際畫圖的內存
  integer, parameter :: segments = 100
  real, parameter    :: PI = 3.14159

contains 
! 定義畫面大小
subroutine SetScreen( width, height )
  implicit none
  integer, intent(in) :: width, height
  if ( allocated(screen) ) deallocate(screen)
  ScreenWidth  = width
  ScreenHeight = height
  allocate( screen(width, height) )
  if ( .not. allocated(screen) ) then
    write(*,*) "Allocate buffer error!"
	stop
  end if
  screen  = ' '
  return
end subroutine
! 歸還內存使用空間
subroutine DestroyScreen()
  implicit none
  if( allocated(screen) ) deallocate(screen)
  return
end subroutine

! 清除畫面
subroutine ClearScreen( c )
  implicit none
  character, optional :: c
  if ( .not. allocated(screen) ) return
  if ( present(c) ) then
    screen = c
  else
    screen = background
  end if
  return
end subroutine
! 定義預設用來清除畫面的字符
subroutine SetBackground( c )
  implicit none
  character :: c
  background = c
  return
end subroutine
! 定義預設用來畫圖的字符
subroutine SetCurrentChar( char )
  implicit none
  character :: char
  CurrentChar = char
  return
end subroutine
! 把畫好的結果顯示在屏幕上
subroutine UpdateScreen()
  implicit none
  integer i
  character(len=20) :: str
  if ( .not. allocated(screen) ) return
  write( str, "('(',I3.3,'A1)')" ) ScreenWidth
  do i=1, ScreenHeight
    write(*, str) screen(:,i)
  end do
  return
end subroutine
! 在指定的(x,y)位置畫上一個字符
subroutine PutChar( x, y, char )
  implicit none
  integer, intent(in) :: x,y
  character, optional :: char

  if ( .not. allocated(screen) ) return
  if ( x<1 .or. x>ScreenWidth .or. y<1 .or. y>ScreenHeight ) return
  
  if( present(char) ) then
    screen(x,y) = char
  else
    screen(x,y) = CurrentChar
  end if

  return
end subroutine PutChar
! 在(x0,y0)到(x1,y1)之間畫一條直線
subroutine DrawLine(x0,y0, x1,y1)
  implicit none
  integer, intent(in) :: x0,y0
  integer, intent(in) :: x1,y1
  integer xdiff, ydiff
  integer xinc, yinc
  integer xadd, yadd
  integer x,y
  integer sum

  xdiff = x1-x0
  ydiff = y1-y0
  
  if ( xdiff > 0 ) then
    xinc = 1
	xadd = xdiff
  else if ( xdiff < 0 ) then
    xinc = -1
	xadd = -xdiff
  else 
    xinc = 0
	xadd = 0
  end if

  if ( ydiff > 0 ) then
    yinc = 1
	yadd = ydiff
  else if ( ydiff < 0 ) then
    yinc = -1
	yadd = -ydiff
  else
    yinc = 0
	yadd = 0
  end if

  sum = 0
  x = x0
  y = y0

  if ( xadd > yadd ) then
	do while(x/=x1)
	  call PutChar( x, y )
	  x = x + xinc
	  sum = sum + yadd
	  if ( sum >= xadd ) then 
	    sum = sum - xadd
		y = y + yinc
	  end if
	end do
    call PutChar( x, y )
  else
	do while(y/=y1)
	  call PutChar( x, y )
	  y = y + yinc
	  sum = sum + xadd
	  if ( sum >= yadd ) then 
	    sum = sum - yadd
		x = x + xinc
	  end if
	end do
    call PutChar( x, y )
  end if

  return
end subroutine
! 以(cx,cy)為圓心, 水平軸半徑為radiusA, 垂直軸半徑為radiusB的橢圖
subroutine DrawCircle( cx, cy, radiusA, radiusB )
  implicit none
  integer, intent(in) :: cx, cy, radiusA
  integer, optional :: radiusB
  integer ra, rb
  integer x,y, nx,ny
  integer i
  real    r, rinc
  r=0.0
  rinc = 2.0*PI/real(segments)

  if ( present(radiusB) ) then
    ra = radiusA
	rb = radiusB
  else
    ra = radiusA
	rb = radiusA
  end if
  
  
  x = cx + int(ra*sin(r)+0.5)
  y = cy + int(rb*cos(r)+0.5)
  do while( r < 2*PI )
	r = r + rinc  
    nx = cx + int(ra*sin(r)+0.5)
	ny = cy + int(rb*cos(r)+0.5)
	call DrawLine(x,y, nx,ny)
	x = nx
	y = ny
  end do

end subroutine
! 如果1<=num<=max, 返回num值.
! num<1 賦值1
! num>max 賦值max
integer function Bound(num, max)
  implicit none
  integer, intent(in) :: num, max
  bound = num
  if ( num<1 ) Bound = 1
  if ( num>max ) Bound = max
  return
end function
! 以(x0,y0)為左上角, (x1,y1)為右下角畫一個空心的矩形
subroutine DrawRect( x0, y0, x1, y1 )
  implicit none
  integer, intent(in) :: x0, y0, x1, y1
  integer :: rx0, ry0, rx1, ry1

  if ( .not. allocated(screen) ) return
  if ( x0>x1 .or. y0>y1 ) return

  rx0 = Bound(x0, ScreenWidth)
  ry0 = Bound(y0, ScreenHeight)
  rx1 = Bound(x1, ScreenWidth)
  ry1 = Bound(y1, ScreenHeight)

  screen(rx0:rx1, ry0) = CurrentChar
  screen(rx0:rx1, ry1) = CurrentChar
  screen(rx0, ry0:ry1) = CurrentChar
  screen(rx1, ry0:ry1) = CurrentChar

  return
end subroutine
! 以(x0,y0)為左上角, (x1,y1)為右下角畫一個實心的矩形
subroutine DrawFilledRect( x0, y0, x1, y1 )
  implicit none
  integer, intent(in) :: x0, y0, x1,y1
  integer :: rx0, ry0, rx1, ry1
  
  if ( .not. allocated(screen) ) return
  if ( x0>x1 .or. y0>y1 ) return

  rx0 = Bound(x0, ScreenWidth)
  ry0 = Bound(y0, ScreenHeight)
  rx1 = Bound(x1, ScreenWidth)
  ry1 = Bound(y1, ScreenHeight)

  screen( rx0:rx1 , ry0:ry1 ) = CurrentChar

  return
end subroutine

end module

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品66部| 精品在线一区二区三区| 91视频国产观看| 一区二区三区中文字幕在线观看| 99久久精品一区二区| 亚洲精品视频观看| 欧美日韩的一区二区| 免费人成精品欧美精品| www国产精品av| 国产999精品久久久久久| 国产精品久久久久久久久免费丝袜 | 欧美成人欧美edvon| 精品一区二区久久| 自拍偷拍国产亚洲| 日韩一区二区三区电影在线观看 | 不卡在线观看av| 樱桃视频在线观看一区| 欧美精品第1页| 国产成人一区在线| 亚洲精品国产一区二区精华液 | 日韩精品国产精品| 久久久国产精华| 91国产丝袜在线播放| 日韩电影在线观看电影| 国产午夜精品美女毛片视频| 欧美伊人久久久久久午夜久久久久| 日本v片在线高清不卡在线观看| 久久老女人爱爱| 欧洲精品一区二区| 国产一区二区调教| 亚洲美女免费在线| 亚洲精品一区二区三区99| 91小视频在线观看| 美日韩一级片在线观看| 亚洲欧美影音先锋| 欧美tk—视频vk| 在线观看视频91| 国产精品1区2区3区在线观看| 亚洲激情成人在线| 久久久三级国产网站| 欧美日韩高清一区| 波多野结衣的一区二区三区| 日韩vs国产vs欧美| 一区二区三区在线高清| 国产亚洲成年网址在线观看| 欧美色综合影院| av在线不卡免费看| 国产成人福利片| 蜜臀久久久99精品久久久久久| 成人欧美一区二区三区1314| 精品国产伦一区二区三区观看体验| 在线免费观看日本欧美| 99视频国产精品| 国产精品1区2区| 久久er精品视频| 亚洲国产一二三| 国产精品不卡在线观看| 久久综合九色综合97_久久久| 在线电影欧美成精品| 欧美性色黄大片手机版| 91色视频在线| 91亚洲精品久久久蜜桃| 91丨九色丨国产丨porny| 成人免费va视频| 国产一区二区三区免费观看| 六月丁香婷婷久久| 欧美aⅴ一区二区三区视频| 亚洲成人你懂的| 天堂在线亚洲视频| 五月综合激情网| 亚洲国产一区视频| 亚洲成av人片在www色猫咪| 亚洲精品久久7777| 亚洲综合视频在线观看| 亚洲一区成人在线| 亚洲丰满少妇videoshd| 亚洲一区二区精品久久av| 亚洲国产视频一区| 午夜亚洲国产au精品一区二区| 亚洲自拍偷拍网站| 亚洲va欧美va人人爽| 日韩黄色一级片| 麻豆成人综合网| 韩国女主播一区| 丁香另类激情小说| 91在线国内视频| 在线精品视频一区二区| 7777精品久久久大香线蕉| 欧美一区二区免费| 精品国产免费一区二区三区香蕉| www国产亚洲精品久久麻豆| 中文字幕成人av| 亚洲欧美日韩精品久久久久| 亚洲精选在线视频| 亚洲gay无套男同| 久久97超碰色| 成人国产精品免费网站| 色哟哟欧美精品| 91精品免费在线观看| 精品国产一区二区三区四区四 | 亚洲精品亚洲人成人网| 亚洲国产人成综合网站| 免费在线看成人av| 成人午夜视频福利| 欧美在线不卡视频| 精品国产麻豆免费人成网站| 国产欧美一区二区精品性| 亚洲欧美一区二区久久| 免费观看成人鲁鲁鲁鲁鲁视频| 国产成人一区二区精品非洲| 日本福利一区二区| 欧美大片在线观看一区| 亚洲欧洲精品天堂一级| 免费视频最近日韩| 91色九色蝌蚪| 欧美精品一区二区三| 亚洲精品欧美专区| 国产一区二区三区四区五区美女 | 日本一区二区三级电影在线观看| 一区二区三区中文在线| 精品在线观看免费| 色婷婷亚洲综合| 久久精品亚洲精品国产欧美kt∨| 夜夜嗨av一区二区三区网页| 国产综合色在线| 欧美性一二三区| 国产精品网站在线观看| 奇米精品一区二区三区在线观看| av电影天堂一区二区在线观看| 91精品啪在线观看国产60岁| 亚洲欧美怡红院| 国产露脸91国语对白| 欧美日韩一区二区三区在线看| 国产欧美精品在线观看| 日韩综合小视频| 91麻豆成人久久精品二区三区| 亚洲精品一区二区三区福利| 午夜精品久久久久久久| 97se亚洲国产综合在线| 久久久99免费| 青青草国产成人av片免费| 欧美视频在线观看一区| 中文字幕一区日韩精品欧美| 国产麻豆视频一区二区| 精品久久久久久久久久久久久久久久久 | 色婷婷综合久久久久中文一区二区 | 亚洲国产毛片aaaaa无费看| 成人黄色大片在线观看| 久久综合久久综合九色| 久久爱www久久做| 欧美一区二区日韩| 亚洲成av人在线观看| 欧美在线观看视频一区二区| 亚洲欧美色图小说| 99久久99久久精品国产片果冻| 欧美激情在线观看视频免费| 韩国女主播成人在线观看| 欧美大肚乱孕交hd孕妇| 美女高潮久久久| 91精品国产综合久久久蜜臀粉嫩 | 久久精品国产一区二区| 欧美一区日本一区韩国一区| 亚洲国产精品久久人人爱| 91福利精品视频| 亚洲成人自拍一区| 91麻豆精品国产91久久久久| 日本 国产 欧美色综合| 欧美一区二区视频免费观看| 日本网站在线观看一区二区三区| 欧美日韩精品欧美日韩精品一 | 午夜精品久久久久久久久久| 欧美三级韩国三级日本三斤| 亚洲va天堂va国产va久| 制服丝袜一区二区三区| 日本不卡视频在线| 久久久一区二区| 成人黄页在线观看| 亚洲激情六月丁香| 91精品国产全国免费观看| 免费美女久久99| 国产日本欧洲亚洲| av成人免费在线| 亚洲国产视频一区| 精品久久久久久久人人人人传媒 | 欧美三级蜜桃2在线观看| 日产国产欧美视频一区精品| 欧美成人激情免费网| 国产剧情在线观看一区二区| 欧美激情自拍偷拍| 色综合色综合色综合色综合色综合| 亚洲卡通动漫在线| 日韩一区二区三区四区五区六区| 精品亚洲aⅴ乱码一区二区三区| 欧美国产日韩一二三区| 色婷婷精品久久二区二区蜜臂av | 成人免费毛片app| 亚洲最大成人网4388xx| 91精品国产综合久久久久久漫画| 国产在线日韩欧美| 亚洲图片一区二区|