[過去ログ] スレ立てるまでもない質問はここで 163匹目 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
976: デフォルトの名無しさん (ワッチョイ 0202-Ay2p) [] 2023/04/09(日) 03:52:28.59 ID:OOQLx3Q60(1/5) AAS
pythonでsinを使って生成した数字を使って前半で溜め、後半で一気に動かすという感じのアニメーションをさせたいのですが
このスクリプトだと出力できる数字は0 と10の繰り返しになりますが
これをたとえば0 2 4 6 8 10 5 0 の繰り返しのようにできないですかね?
その数字のとおりにやりたいというよりも、前半の数字の変化を後半の数字の変化よりも長くしたいんです
import math
frame = 2
for i in range(0,frame+1):
# print(i)
num = math.sin(i*math.pi/frame)*1000
num = math.floor(num)/100
print(num)
978: デフォルトの名無しさん (ワッチョイ 0202-Ay2p) [] 2023/04/09(日) 04:41:22.17 ID:OOQLx3Q60(2/5) AAS
>>977そうです
正弦波の波の動きを片方だけ長くしたり短くしたりしたいんです
979: デフォルトの名無しさん (ワッチョイ 0202-Ay2p) [] 2023/04/09(日) 04:50:07.09 ID:OOQLx3Q60(3/5) AAS
一番下の正弦波を上の2つのように変化させたいです
画像リンク
982(1): デフォルトの名無しさん (ワッチョイ 0202-Ay2p) [] 2023/04/09(日) 06:12:59.20 ID:OOQLx3Q60(4/5) AAS
>>981981(1): デフォルトの名無しさん (ワッチョイ 424b-jq58) [sage] 2023/04/09(日) 05:29:20.89 ID:hSdkmotY0(3/4) AAS
なんでも良ければこれで大丈夫かと
import math
frame1 = 4
frame2 = 2
# 0 to pi/2
for i in range(0,frame1):
# print(i)
num = math.sin(i*math.pi/2/frame1)*1000
num = math.floor(num)/100
print(num)
# pi/2 to pi
for i in range(0,frame2):
# print(i)
num = math.sin(math.pi/2 + i*math.pi/2/frame2)*1000
num = math.floor(num)/100
print(num)
# pi to 3pi/2
for i in range(0,frame2):
# print(i)
num = math.sin(math.pi+ i*math.pi/2/frame2)*1000
num = math.floor(num)/100
print(num)
# 3pi/2 to 2pi
for i in range(0,frame1):
# print(i)
num = math.sin(3*math.pi/2 + i*math.pi/2/frame1)*1000
num = math.floor(num)/100
print(num)
いけました
ありがとうございます
math.sinの仕組みがよくわかってないんですけどframe変数に偶数を入れておけば
綺麗に数値が繰り返されるのでこの変数を使って反復運動の速度を調整してました
この変更っていうのはなにか決まりがあってやってるですかね
ちょっと見ただけじゃ何をしてるのかがよくりませんでした
num = math.sin(i*math.pi/2/frame1)*1000
num = math.sin(math.pi/2 + i*math.pi/2/frame2)*1000
num = math.sin(math.pi+ i*math.pi/2/frame2)*1000
num = math.sin(3*math.pi/2 + i*math.pi/2/frame1)*1000
984: デフォルトの名無しさん (ワッチョイ 0202-Ay2p) [sage] 2023/04/09(日) 22:29:57.79 ID:OOQLx3Q60(5/5) AAS
>>983983(1): デフォルトの名無しさん (ワッチョイ 424b-jq58) [sage] 2023/04/09(日) 07:36:52.26 ID:hSdkmotY0(4/4) AAS
②のときは
math.sin(math.pi/2 + i*math.pi/2/frame2)
(i : 0, 1, 2, ..., frame2)
開始位置はπ/2
それが前半の「math.pi/2」に対応する
その開始位置からπ/2進める
frame2[回]でπ/2進むようにするために後半の「i*math.pi/2/frame2」がある
>>982
解説どうもです
こういうのはプログラミングをやっていればわかることなんですかね
それとも数学とかを学んでいるからわかることなんですかね
こういうことがすぐにわかれば応用がきくので作業がはかどるなあとは思うのですがまったくわからない状態でして
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s