小编AvZ*_*AvZ的帖子

HSV到RGB颜色转换

有没有办法在python中使用pygame模块将HSV颜色参数转换为RGB类型颜色参数?我尝试了以下代码,但它返回荒谬的值.

import colorsys
test_color = colorsys.hsv_to_rgb(359, 100, 100)
print(test_color)
Run Code Online (Sandbox Code Playgroud)

这段代码返回以下废话

(100, -9900.0, -9900.0)
Run Code Online (Sandbox Code Playgroud)

这显然不是RGB.我究竟做错了什么?

python rgb pygame colors hsv

19
推荐指数
4
解决办法
3万
查看次数

C++将值存储在无序对中

我想存储一对无序整数的浮点值.我无法找到任何易于理解的教程.例如,对于无序对,{i,j}我想存储浮点值f.如何插入,存储和检索这样的值?

c++ arrays unordered-map unordered-set unordered

7
推荐指数
2
解决办法
2329
查看次数

C++ 软体引擎

我正在尝试使用 SDL2 用 C++ 制作一个基本的软体引擎。它的工作原理是考虑软体的所有顶点都由相同长度和刚度的弹簧互连(具有相同的弹簧常数k和长度natural_length)。为了使其更加真实,我还引入了阻尼常数c
然而,我遇到了一个令人沮丧的问题。过去 6-7 个小时我一直在尝试调试它,但没有成功。软体遇到很多奇怪的我不明白的bug

  • 首先,“软体”一点也不“软”。每次它都会变成一团皱巴巴的乱七八糟的点。我尝试只计算相邻点的力,但它仍然变得一团糟。
  • 即使我没有施加任何外力,软体每次都会飞到顶角(原点)。

这两个错误在此图像中都可见 - 漏洞

以下 2 个函数(它们与所有变量属于同一类,因此不需要接受任何参数)是代码的实际模拟部分。(我省略了其余的代码,因为这是不必要的。)
我使用vectorofSDL_Points来存储每个点,并使用vectorofVector来存储它们的速度。如果您想知道它Vector是什么,它只是一个structI 创建的,它只有 2 个float成员xy
acceleratePoints()函数为每个点分配速度和位置,并checkCollision()很好地检查与窗口墙壁的碰撞,窗口的宽度scr_w和高度为scr_h

    void acceleratePoints()
    {
        vector<SDL_Point> soft_body_copy=soft_body;
        vector<Vector> velocity_copy=velocity;
        for(int i=0;i<soft_body.size();++i)
        {
            for(int j=0;j<soft_body.size();++j)
            {
                if(i!=j)
                {
                    Vector d={(soft_body[j].x-soft_body[i].x)/100.0,(soft_body[j].y-soft_body[i].y)/100.0};
                    float t=atan2(d.y,d.x);
                    float disp=fabs(magnitude(d))-natural_length/100.0;
                    velocity_copy[i].x+=(k*disp*cos(t))/10000.0;
                    velocity_copy[i].y+=(k*disp*sin(t))/10000.0;
                    velocity_copy[i].x-=c*velocity_copy[i].x/100.0;
                    velocity_copy[i].y-=c*velocity_copy[i].y/100.0;
                    soft_body_copy[i].x+=velocity_copy[i].x;
                    soft_body_copy[i].y+=velocity_copy[i].y;
                } …
Run Code Online (Sandbox Code Playgroud)

c++ physics game-physics sdl-2 softbody

5
推荐指数
1
解决办法
2284
查看次数

朱莉娅设定了分形

我写了一个程序来生成Julia set fractals.该程序还允许用户输入其c值或让程序生成随机值.这是代码: -

import pygame, sys, math, cmath, random
from pygame.locals import *
print("Julia set fractal generator")
custom = int(input("Do you want a custom set? Yes(1); No(-1): "))
if custom == -1:
    c = complex((random.randint(-999,1000))/1000.0,(random.randint(-999,1000))/1000.0)
else:
    a = float(input("Real?: "))
    b = float(input("Imaginary?: "))
    c = complex(a,b)
lim = 4
limn = -4
mul = 0
iteration_detail = 100
screen = pygame.display.set_mode((512,512),0,32)
pygame.display.set_caption("Julia set fractal generator")
def iterate (px_i,py_i,iters):
    itnum = 1
    z = complex(((px_i-256)/512.0)*4,((py_i-256)/512.0)*4)
    while itnum <= iters: …
Run Code Online (Sandbox Code Playgroud)

python iteration pygame fractals complex-numbers

4
推荐指数
1
解决办法
4203
查看次数

自从在C++中执行以来获取已用时间的最简洁方法

在C++中执行程序(精确到毫秒)后,最简单,最干净的方法是什么?

我正在制作一个波浪干涉模拟器,用C++ 生成Lissajous曲线.它需要自执行程序(精度至少为毫秒)起的时间才能运行.经过一些研究后,我似乎无法找到任何干净简单的方法.
所有<chrono>功能对我来说都很困惑.Stack Overflow上的类似问题似乎是无关的,令我感到困惑(对我而言)或不适用于我的情况.我尝试使用函数<time.h>,但发现它们只有精度达到秒.
我正在运行Windows 7 x64.该程序不需要独立于平台,因为它是供个人使用的.任何帮助是极大的赞赏.
谢谢!

c++ time execution-time elapsedtime

3
推荐指数
1
解决办法
245
查看次数

使用Greasemonkey/Tampermonkey保存数据以便以后检索

我正在开展一个需要网站数据的项目.该数据的问题在于它被组织成许多不同的网页,其中URL中包含序列号.为了解决这个问题,我在Tampermonkey中编写了一个简单的脚本,它循环遍历这些页面并在脚本中的字符串变量中获取数据.

现在出现了真正的问题,我该如何存储这些数据.我知道我无法写入我的电脑上的文件,但可以将数据显示在浏览器的单独选项卡上,这样我就可以在循环完成后将其复制并粘贴到本地文件中?我希望在每个循环中附加一个字符串存储

我不想使用,GM_setValue因为我希望原始文本格式的数据(如.txt文件)

但是,如果它可以直接写入我的PC上的文件而不使用外部库,那么这将是首选.

html javascript database greasemonkey tampermonkey

2
推荐指数
1
解决办法
5968
查看次数

Tic Tac Toe游戏不起作用

所以我在一周前学会了编程.我决定做一个tic tac toe游戏作为一个爱好项目,我有一个基本的游戏输入方法启动和运行但一方面不起作用.我制作了一段非常简化的代码,以验证一旦有5个动作播放,是否有人赢了.一旦有人获胜,它应该显示"Game Over!" 但它不是出于某种原因.有人可以帮忙吗?_ __ _ __ _ __ _ ___ 注意:验证某人是否已获胜的方法在代码中未完成.它只适用于行,因为当我测试它时,它不起作用.

#include <iostream>
#include <cstdlib>

using namespace std;
int main()
{
    char grid[3][3];
    int p;
    cout << "Enter column number. \n";
    cin >> p;
    int o;
    cout << "Enter row number. \n";
    cin >> o;
    for (int y = 0; y < 3; y++)
    {
        for (int x = 0; x < 3; x++)
        {
            grid[x][y] = '-';
            grid[o][p] = 'X';
            cout << grid[x][y] << " "; …
Run Code Online (Sandbox Code Playgroud)

c++ arrays

0
推荐指数
1
解决办法
259
查看次数

查找素数的程序意外停止

我写了一个非常简单的程序来查找由用户指定的特定范围内的素数.但我遇到了一个问题.当程序达到复合数时,程序只会停止打印出素数.我试着看看为什么它会停止,但我根本无法理解它有什么问题可能因为我是编程的新手.无论如何,这是代码.

#include <iostream>
using namespace std;
int main()
{
    int y;
    int range;
    cout << "Please enter the range. \n";
    cin >> range;
    for (y = 2; y <= range; y++)
    {
        int result;
        for (int x = 1; x < y - 1; x++)
        {
            int prime = y - x;
            if (y%prime != 0)
            {

            }
            else
            {
                result = 0;
            }
        }
        if (result != 0)
        {
            cout << y << " is a prime number. \n"; …
Run Code Online (Sandbox Code Playgroud)

c++ for-loop numbers

0
推荐指数
1
解决办法
113
查看次数