Pergunta

Eu estava querendo experimentar o Demo fdx No entanto, isso me deu uma série de erros e avisos devido a problemas de compatibilidade, por isso tenho tentado funcionar corretamente. O código completo está em um Pastebin.

Estou tendo problemas com o código aqui:

  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

O que me dá o seguinte erro em f# interativo.

Motion-Sample.fs (438,53): Erro FS0001: Digite Incompatch. Esperando a
((('A *' B) LISTA -> 'C) * ((' A * 'B) LISTA ->' D)) REF
mas dado a
(Float [,] * Float [,]) Ref.
A lista tipo '(' a * 'b) ->' c 'não corresponde ao tipo' float [,] ''

Obrigado por qualquer ajuda!

Foi útil?

Solução

Não tive tempo de dar uma boa olhada, mas tente mudar a definição de malha para

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

EDITAR

Na verdade, ainda melhor, parece que há uma cópia mais fresca em

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

Você deve usar isso em vez do de anos postado no Hubfs.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top