Domanda

Ho avuto voglia di provare il FDX demo comunque mi ha dato una serie di errori e avvisi a causa di problemi di compatibilità, così ho cercato di farlo funzionare correttamente. Il codice completo è su una pastebin .

Ho problemi con il codice qui:

  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

che mi dà il seguente errore in F # interattivo.

motion-sample.fs (438,53): errore FS0001: Tipo non corrispondente. In attesa di un
((( 'A *' b) Lista -> 'c) * ((' a * 'b) Lista ->' d))
ref ma dato un
(Float [,] * float [,]) rif.
Il tipo '(' a * 'b) Lista -> 'c' non corrisponde al tipo di 'float [,]'

Grazie per qualsiasi aiuto!

È stato utile?

Soluzione

Non ho avuto il tempo di dare una buona occhiata, ma provare a cambiare la definizione meshGet a

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

Modifica

In realtà, ancora meglio, sembra che ci sia una copia più fresco a

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

si dovrebbe usare che, piuttosto che gli anni di età uno pubblicato sul hubfs.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top