Pregunta

He estado esperando para probar el FDX demostración sin embargo, me dio una serie de errores y advertencias debido a problemas de compatibilidad, por lo que he estado tratando de conseguir que funcione correctamente. El código completo se encuentra en una Pastebin .

Tengo problemas con el código aquí:

  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

lo que me da el siguiente error en Fa # interactiva.

Motion-sample.fs (438,53): FS0001 de error: No coinciden los tipos. Esperando un
((( 'A *' b) Lista -> 'c) * ((' a * 'b) Lista ->' d)) ref
pero teniendo en cuenta un
(Float [,] * float [,]) ref.
El tipo '(' a * 'b) Lista -> 'c' no coincide con el tipo 'float [,]'

Gracias por cualquier ayuda!

¿Fue útil?

Solución

No he tenido tiempo para tener un buen aspecto, pero trate de cambiar la definición meshGet a

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

Editar

En realidad, aún mejor, parece que hay una copia fresca a

http://code.msdn.microsoft.com /fsharpsamples/Release/ProjectReleases.aspx?ReleaseId=2705

debería usarla en lugar de uno de los años de edad, publicado en hubfs.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top