2011-07-23 8 views
0

こんにちは皆さん、 私のプロジェクトには3次ベジェ曲線を実装しています。計算されたコントロールポイントをファイルに保存する必要があります。カーネルを表示するにはgnuplotで出力ファイルを使用する必要があります。ここの記事の1つに続いて、実装方法を理解しましたが、出力をファイルに取得する方法を混乱させています。試してみると、最後に計算したポイントの値が書き込まれます。ループがあるので、値を生成するとすぐに値をファイルに書き込む必要があります。以下は、コードです:計算されたデータをファイルに書き込む

import math 

points = [(0,0), (5,0), (5,5), (10,5)] 

n = 20 

for i in range(n) : 

     u = i/float(n) 

     x = math.pow(1-u,3) * points[0][0] + 3 * u * math.pow(1-u,2) * points[1][0] \ 
     + 3 * (1-u) * math.pow(u,2) * points[2][0] + math.pow(u,3) * points[3][0] 
     y = math.pow(1-u,3) * points[0][1] + 3 * u * math.pow(1-u,2) * points[1][1] \ 
     + 3 * (1-u) * math.pow(u,2) * points[2][1] + math.pow(u,3) * points[3][1] 

     print "(x,y)=", (x, y)  

誰かが私を助けてくれますか?ありがとうございました。

答えて

1

f = open('somefile.dat', 'w+')はファイルを開く(作成する)。 f.write()を使用すると、文字列をファイルに書き込むことができます。あなたのケースでは、write呼び出しでprintコールを代用する必要があります。

import math 
points = [(0,0), (5,0), (5,5), (10,5)] 
n = 20 
f = open('somefile.dat', 'w+') 

for i in range(n) : 

    u = i/float(n) 

    x = math.pow(1-u,3) * points[0][0] + 3 * u * math.pow(1-u,2) * points[1][0] \ 
    + 3 * (1-u) * math.pow(u,2) * points[2][0] + math.pow(u,3) * points[3][0] 
    y = math.pow(1-u,3) * points[0][1] + 3 * u * math.pow(1-u,2) * points[1][1] \ 
    + 3 * (1-u) * math.pow(u,2) * points[2][1] + math.pow(u,3) * points[3][1] 

    f.write("(x,y)=(%f, %f)"% (x, y)) 
+1

はどうもありがとうございまし参照してください。それはささいな問題でしたが、私はそれもできないほど馬鹿です。 – zingy

0

は、ファイルへの書き込み:

f = open("fileName", "w+") 
f.write(someDataToWrite) 

はよりhere

関連する問題