Fortran Coder

标题: 逻辑问题,一直搞不懂 [打印本页]

作者: Botton    时间: 2020-12-14 09:38
标题: 逻辑问题,一直搞不懂
已知Gi=ix*ex+iy*ey,Gj=jx*ex+jy*ey,ix取值范围是1-3,iy取值范围是1-3,jx取值范围是1-3,jy取值范围是1-3
现在定义G1=1*ex+1*ey,G2=2*ex+1*ey,G3=3*ex+1*ey,G4=1*ex+2*ey,G5=2*ex+2*ey,G6=3*ex+2*ey,G7=1*ex+3*ey,G8=2*ex+3*ey,G9=3*ex+3*ey,
定义Gij=Gi-Gj=(ix-jx)*ex+(iy-jy)*ey,举例G11=G1-G1=(1-1)*ex+(1-1)*ey,G32=(3-2)*ex+(1-1)*ey
现在我想用语言来实现这个逻辑关系,求大佬帮帮忙,万分感谢!!!!!!

作者: necrohan    时间: 2020-12-14 09:48
这是个3*3的矩阵吧
作者: Botton    时间: 2020-12-14 10:48
necrohan 发表于 2020-12-14 09:48
这是个3*3的矩阵吧

应该算是吧,应该是两个3*3的点坐标相减
作者: necrohan    时间: 2020-12-14 15:30
不知道你要的是不是这个意思

[Fortran] 纯文本查看 复制代码
program test
implicit none
integer i,j,n
real ex,ey,g,tmp

n=9;
ex=1;ey=1

do i=1,n-1
  tmp=g(i,ex,ey)-g(i+1,ex,ey)
  write(*,*)i,tmp
enddo

end

real function g(i,ex,ey)
implicit none
integer i
integer row,col
real ex,ey
row=mod(i,3)
col=i/3+1
if(row==0)then
  row=3
  col=col-1
endif
!write(*,*)i,row,col
g=row*ex+col*ey
end

作者: Botton    时间: 2020-12-14 16:20
necrohan 发表于 2020-12-14 15:30
不知道你要的是不是这个意思

[mw_shl_code=fortran,true]program test

不是,我要的不是求Gij的值,我是想要每个位置的坐标
作者: Botton    时间: 2020-12-14 16:21
本帖最后由 Botton 于 2020-12-14 16:22 编辑

C:\Users\hyj\Desktop.IMG_1554.jpg

IMG_15541.JPG (29.64 KB, 下载次数: 391)

IMG_15541.JPG

作者: li913    时间: 2020-12-14 17:52
ix(9)=[1,2,3,1,2,3,1,2,3]
iy(9)=[1,1,1,2,2,2,3,3,3]
G(i,j) = (ix(i)-ix(j))*ex + (iy(i)-iy(j))*ey




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2