スレ立てるまでもない質問はここで 163匹目

レス数が1000を超えています。これ以上書き込みはできません。
2022/12/08(木) 12:29:27.06ID:Nq8u2KPWd
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

次スレは>>980が立てること

【前スレ】
スレ立てるまでもない質問はここで 162匹目
https://mevius.5ch.net/test/read.cgi/tech/1666337882/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/04/06(木) 22:32:50.74ID:O4MLKnYM0
今どきはSetup Projectじゃなくmsixを使うんだよ
968デフォルトの名無しさん (ワッチョイ ff33-9P2W)
垢版 |
2023/04/06(木) 23:05:22.99ID:JPUq24CX0
>>967
Setup Projectにこだわってるわけではなくて、公式と同じインストーラーを自分で作ってみたいです
公式で配ってるインストーラーはmsixっていうのですか?
2023/04/06(木) 23:18:05.65ID:O4MLKnYM0
見てないから知らんがmsixじゃないなら公式が時代に追いついてないだけ
Setup Projectがデフォルトでインストールされないのを見ても推奨されないレガシー技術だとわかるだろ
2023/04/07(金) 03:00:51.07ID:D4MDBVlu0
これかな https://docs.python.org/3/distutils/builtdist.html
2023/04/08(土) 16:43:04.81ID:kyxCuVvHd
msixはなんたらツールが上手く入らなくで断念したわ
なんでインストーラごときに変なドライバとか必要なんだ
972デフォルトの名無しさん (ワンミングク MM52-ohv4)
垢版 |
2023/04/08(土) 19:16:57.04ID:7VZaiwVkM
起動後に自身のコマンドラインを書き換えるプログラムがあったんですがどういう仕組みなんですか
2023/04/08(土) 19:32:41.24ID:tM+hyW0O0
Cだとargvの中身を書き換えることで出来る環境もある
書き換えるとpsとか/proc/pid/cmdlineとかの表示が変わる
2023/04/08(土) 21:01:22.44ID:Qj3LoyOi0
Cでそんな気をつかった動作する実装あんだね
2023/04/08(土) 22:44:54.43ID:tM+hyW0O0
そりゃあるんじゃねーの?
何が言いたいのかよく分かんねーやw
976デフォルトの名無しさん (ワッチョイ 0202-Ay2p)
垢版 |
2023/04/09(日) 03:52:28.59ID:OOQLx3Q60
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)
2023/04/09(日) 04:37:27.61ID:hSdkmotY0
こうしたいってこと?
978デフォルトの名無しさん (ワッチョイ 0202-Ay2p)
垢版 |
2023/04/09(日) 04:41:22.17ID:OOQLx3Q60
>>977
そうです
正弦波の波の動きを片方だけ長くしたり短くしたりしたいんです
979デフォルトの名無しさん (ワッチョイ 0202-Ay2p)
垢版 |
2023/04/09(日) 04:50:07.09ID:OOQLx3Q60
一番下の正弦波を上の2つのように変化させたいです
https://i.imgur.com/pryVyOz.jpg
2023/04/09(日) 05:24:28.85ID:hSdkmotY0
frameというのは半周期の分割数?
2023/04/09(日) 05:29:20.89ID:hSdkmotY0
なんでも良ければこれで大丈夫かと

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)
982デフォルトの名無しさん (ワッチョイ 0202-Ay2p)
垢版 |
2023/04/09(日) 06:12:59.20ID:OOQLx3Q60
>>981
いけました
ありがとうございます

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
2023/04/09(日) 07:36:52.26ID:hSdkmotY0
②のときは
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
2023/04/09(日) 22:29:57.79ID:OOQLx3Q60
>>983
解説どうもです
こういうのはプログラミングをやっていればわかることなんですかね
それとも数学とかを学んでいるからわかることなんですかね

こういうことがすぐにわかれば応用がきくので作業がはかどるなあとは思うのですがまったくわからない状態でして
2023/04/09(日) 22:55:07.40ID:yYyAhZLzM
ある種の変調だよね

簡単な機能を、重ね合わせるって発想
それをコードに落とし込んでる 慣れるよ
986デフォルトの名無しさん (ブーイモ MM66-9pDP)
垢版 |
2023/04/10(月) 05:03:08.46ID:oMIHCwe3M
30代Pythonクソチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
987デフォルトの名無しさん (ワッチョイ 827f-UjMO)
垢版 |
2023/04/10(月) 17:55:37.92ID:VcrlTKv20
二次元配列って行の長さが全部同じグリッドで使う必要ないよね?
[y][x]で見るよりy=i//幅とx=i%幅のが早そうだし
2023/04/10(月) 18:12:41.02ID:rZwv5F2aa
除算が入るのに速いわけないやん
2023/04/10(月) 18:48:22.95ID:0qWpy2US0
除算は関係を書いたまでで座標アクセスでは発生しないよね
境界を超えたときにエラーにしたいか
前後の行にまわりこんでよいかの違いかな
2023/04/10(月) 18:49:41.34ID:b/90pZbw0
そう思うなら計測してみなよ
2023/04/10(月) 19:26:39.32ID:pIBx+EyQ0
>>987
二次元配列ってのは2つの添え字から楽に格納先を見る方法だから、そうする必要があるのか、ないのかってこと。
例えば先頭から順次、連続して一次元的に参照するならそもそも二次元配列は使わなくてよし
2023/04/10(月) 22:00:23.56ID:IbkX37li0
424b-jq58は次スレ立てんの?
2023/04/10(月) 22:02:00.90ID:HMKmXAnI0
ジャグ配列の話してる?
2023/04/10(月) 23:16:02.46ID:n9iaoSFs0
>>985
そうですか
三角関数調べると波の位置でπの値は決まってるんですね
高校kで挫折してまったく内容把握してなかったです
どうもでした
2023/04/10(月) 23:28:40.56ID:4WfJWb9Xd
>>989
[y][x]でアクセスしても内部で除算してるし(ただしxが2^nの場合はシフトと&に最適化されるはず)
境界越えてもエラーにならず前後の行にまわりこんでしまうよ
2023/04/10(月) 23:49:09.10ID:18ZE+qPed
…いや除算ではなく乗算か

こういう事を言ってるんだと思うのだが

int table[10][10];
table[y][x]=55;

int table[10*10];
table[y*10+x]=55;

上も下もおそらく同じコードが生成されて
どっちもxかyが10以上でもエラーにならない(一般保護エラーになるかもしれない)
範囲チェックしないのは多元配列の問題ではなくCの配列の一般的な問題
2023/04/11(火) 00:19:50.35ID:KrSp3HQhd
あっしまったここC言語スレじゃねえw
2023/04/11(火) 07:51:00.54ID:gigFj8HV0
除算と乗算の区別がつかないのは相当ポンコツだぞ
2023/04/11(火) 12:39:40.55ID:cuNKlQrva
>>972
例えば、Ruby のOptionParser は、ARGV を書き換える

例えば、以下のコードを、script.rb に書いて、
ruby script.rb -a あ x
と実行すると、

OptionParserがARGVを解析し、-a オプションが解析済みとして取り除かれて、
残りの引数だけが、未解析として残る

ruby script.rb x -a あ
ただし、この順番では、-a はオプションとはみなされず、取り除かれないので要注意!

require 'optparse'

p ARGV #=> ["-a", "あ", "x"]

opt = OptionParser.new
p params = opt.getopts( ARGV, "a" ) # -a を定義する
#=> {"a"=>true}

p ARGV #=> ["あ", "x"]
2023/04/11(火) 19:10:26.92ID:f7dSY1B50
スレ立てるまでもない質問はここで 164匹目
https://mevius.5ch.net/test/read.cgi/tech/1681132438/
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 124日 6時間 41分 0秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況