by konisi » 2006年11月29日(水) 22:17
随分前に作ったもので、使い方はよく覚えてませんが・・・
コード: 全て選択
Const PX=350
Const PY=250
Function AX(X AS Double,Y AS Double,C AS Double,D AS Double) AS Double
AX=Cos(C)*X+Cos(D)*Y+PX
End Function
Function AY(X AS Double,Y AS Double,Z AS Double,C AS Double,D AS Double,E AS Double) AS Double
AY=((Sin(C)*(-X)+Sin(D)*Y))*Sin(E)+Z*Sin(_System_PI/2-E)+PY
End Function
Function As2D(X AS Double,Y AS Double,Z AS Double,C AS Double,D AS Double,E AS Double,ByRef pnt AS POINTAPI)
pnt.x=AX(X,Y,C,D)
pnt.y=AY(X,Y,Z,C,D,E)
End Function
確か、X,Y,Zが3D座標、C,D,Eが3D系をどの位置(角度)から見るか だったと思います。
勘で使ってください。すみません。
それと、遠近法を考慮せずに作ってあるのでそこらへん注意してください。
随分前に作ったもので、使い方はよく覚えてませんが・・・[code]Const PX=350
Const PY=250
Function AX(X AS Double,Y AS Double,C AS Double,D AS Double) AS Double
AX=Cos(C)*X+Cos(D)*Y+PX
End Function
Function AY(X AS Double,Y AS Double,Z AS Double,C AS Double,D AS Double,E AS Double) AS Double
AY=((Sin(C)*(-X)+Sin(D)*Y))*Sin(E)+Z*Sin(_System_PI/2-E)+PY
End Function
Function As2D(X AS Double,Y AS Double,Z AS Double,C AS Double,D AS Double,E AS Double,ByRef pnt AS POINTAPI)
pnt.x=AX(X,Y,C,D)
pnt.y=AY(X,Y,Z,C,D,E)
End Function[/code]
確か、X,Y,Zが3D座標、C,D,Eが3D系をどの位置(角度)から見るか だったと思います。
勘で使ってください。すみません。
それと、遠近法を考慮せずに作ってあるのでそこらへん注意してください。