Frage

Ich wollte das ausprobieren FDX -Demo Es gab mir jedoch eine Reihe von Fehlern und Warnungen aufgrund von Kompatibilitätsproblemen, also habe ich versucht, es richtig zum Laufen zu bringen. Der vollständige Code ist auf a Pastebin.

Ich habe hier Probleme mit dem Code:

  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

Das gibt mir den folgenden Fehler in F# interaktiv.

Motion-Sample.FS (438,53): Fehler FS0001: Typ Fehlanpassung. Erwarten a
((('a *' b) Liste -> 'c) * ((' a * 'b) Liste ->' d)) Ref
aber gegeben a
(float [,] * float [,]) Ref.
Der Typ '(' a * 'b) Liste ->' C 'stimmt nicht mit dem Typ' Float [,] 'überein.

Danke für jede Hilfe!

War es hilfreich?

Lösung

Ich hatte keine Zeit, einen guten Blick darauf zu werfen, aber versuchen Sie, die Meshget -Definition zu ändern.

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

BEARBEITEN

Eigentlich noch besser sieht es so aus, als gäbe es eine frischere Kopie bei

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

Sie sollten das anstelle des jahrelangen auf Hubfs veröffentlichten Hubfs verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top