문제

나는 시도하고 싶었다 FDX 데모 그러나 호환성 문제로 인한 일련의 오류와 경고를 제공 했으므로 올바르게 작동하도록 노력했습니다. 전체 코드는 a 페이스트 빈.

여기서 코드에 문제가 있습니다.

  let drawSurf f (device:Device) =
  let m,n = meshDims !mesh in 
  let data = Array.init (n*m) (fun k ->
                                 let i,j = k2ij !mesh k in
                                 let x,y = meshGet !mesh (i,j) in
                                 let z = f (x,y) in // single precision f 
                                 (x,y,z))
  in
  let strips = triangleRows n m |> map (map (blendPlace !mesh data)) in
  List.iter (fun strip -> drawTriangeStrip strip device) strips;
  let m,n = meshDims !mesh in 
  let lines = gridLines n m in
  let lines = lines |> map (colorPlace !mesh data Color.Black) in
  drawLineList lines device

F# Interactive에서 다음 오류를 제공합니다.

Motion-Sample.fs (438,53) : 오류 FS0001 : 불일치를 입력하십시오. 기대 a
((( 'a *'b) list-> 'c) * (('a * 'b) 목록 ->'d)) 참조
그러나 주어진
(float [,] * float [,]) ref.
유형 '('a * 'b) 목록 ->'c '는'float [,] '유형과 일치하지 않습니다.

도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

나는 좋은 모습을 취할 시간이 없었지만 메시 게트 정의를 변경해보십시오.

let meshGet (mesh:_[,]*_[,]) (i,j) = let X,Y = mesh in X.[i,j], Y.[i,j]

편집하다

사실, 더 나은 것은 더 신선한 사본이있는 것 같습니다.

http://code.msdn.microsoft.com/fsharpsamples/release/projectreleases.aspx?releaseid=2705

당신은 Hubfs에 게시 된 나이가 아니라 그것을 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top