24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 574  |  回复: 7

ghost118

木虫 (小有名气)

[求助] 画图 已有1人参与

刚入学,跟老板说c++还不错,计算机二级拿了个优秀,他就让我画y=x2的图形,第一次听说c++能画图啊,跪求高人指导
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xzhdty: 金币+2, 感谢参与应助 2014-09-18 06:30:46

你老板太欺负人了

画简单函数太掉优秀二级的价了;
你用下面这段代码忽悠他去:
CODE:
#include <complex>
#include <fstream>

using namespace std;

const double PI = 3.1415926535897932384626433832795;
const double E  = 2.7182818284590452353602874713527;

void SetHSV(double h, double s, double v, unsigned char color[3]) {
    double r, g, b;
    if(s==0)
        r = g = b = v;

    else {
        if(h==1) h = 0;
        double z = floor(h*6); int i = int(z);
        double f = double(h*6 - z);
        double p = v*(1-s);
        double q = v*(1-s*f);
        double t = v*(1-s*(1-f));

        switch(i){
        case 0: r=v; g=t; b=p; break;
        case 1: r=q; g=v; b=p; break;
        case 2: r=p; g=v; b=t; break;
        case 3: r=p; g=q; b=v; break;
        case 4: r=t; g=p; b=v; break;
        case 5: r=v; g=p; b=q; break;
        }
    }
    int c;
    c = int(256*r); if(c>255) c = 255; color[0] = c;
    c = int(256*g); if(c>255) c = 255; color[1] = c;
    c = int(256*b); if(c>255) c = 255; color[2] = c;
}

complex<double> fun(complex<double>& c ){
    const complex<double> i(0., 1.);
    return (pow(c,2) -1.) *pow(c -2. -i, 2) /(pow(c,2) +2. +2. *i);
}

int main(){
    const int dimx = 800; const int dimy = 800;
    const double rmi = -3; const double rma =  3;
    const double imi = -3; const double ima =  3;

    ofstream f("complex.ppm", ios::binary);
    f << "P6" << endl
      << dimx << " " << dimy << endl
      << "255" << endl;

    for(int j=0; j < dimy; ++j){
        double im = ima - (ima -imi) *j /(dimy -1);
        for(int i=0; i < dimx; ++i){               
            double re = rma -(rma -rmi) *i /(dimx -1);
            complex<double> c(re, im);
            complex<double> v = fun(c);       
            double a = arg(v);

            while(a<0) a += 2*PI; a /= 2*PI;
            double m = abs(v);
            double ranges = 0;
            double rangee = 1;

            while(m>rangee){
                ranges = rangee;
                rangee *= E;
            }

            double k   = (m-ranges)/(rangee-ranges);
            double sat = k < 0.5 ? k *2: 1 -(k -0.5) *2;
            sat = 1 - pow(1-sat, 3); sat = 0.4 + sat*0.6;

            double val = k < 0.5 ? k *2: 1 -(k -0.5) *2; val = 1 - val;
            val = 1 - pow(1-val, 3); val = 0.6 + val*0.4;

            unsigned char color[3];
            SetHSV(a,sat,val,color);
            f.write((const char*)color,3);
        }
    }
    return 0;
}

ส็็็็็็็็็็็็็็็็็็็็
2楼2014-09-17 17:20:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghost118

木虫 (小有名气)

引用回帖:
2楼: Originally posted by cooooldog at 2014-09-17 17:20:55

你老板太欺负人了

画简单函数太掉优秀二级的价了;
你用下面这段代码忽悠他去:

#include <complex>
#include <fstream>

using namespace std;

const double PI = 3.141592653589 ...

哥,这个代码能直接画图么,我电脑64位的不能装vc++6.0,还有就是我c++三年都没碰了啊,学的很基础很基础的,还有就是学校图书馆还没办法借书,我发现自己真的太小白了,烦的要死啊
3楼2014-09-17 17:35:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

引用回帖:
3楼: Originally posted by ghost118 at 2014-09-17 17:35:58
哥,这个代码能直接画图么,我电脑64位的不能装vc++6.0,还有就是我c++三年都没碰了啊,学的很基础很基础的,还有就是学校图书馆还没办法借书,我发现自己真的太小白了,烦的要死啊...

这个直接把图片输出到文件; 任何C++编译器都可以; GCC, VC++2008-2013, 都可以

» 本帖已获得的红花(最新10朵)

ส็็็็็็็็็็็็็็็็็็็็
4楼2014-09-17 17:41:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghost118

木虫 (小有名气)

送红花一朵
引用回帖:
4楼: Originally posted by cooooldog at 2014-09-17 17:41:10
这个直接把图片输出到文件; 任何C++编译器都可以; GCC, VC++2008-2013, 都可以...

我得慢慢来,一步步学,要是这个立马就搞出来,他再给我找点更复杂的活儿,我就。。。。谢啦,哥,送你一朵小红花
5楼2014-09-17 17:45:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

6楼2014-09-17 17:45:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghost118

木虫 (小有名气)

引用回帖:
6楼: Originally posted by cooooldog at 2014-09-17 17:45:57

一会给你金币啊
7楼2014-09-17 17:49:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (文坛精英)

本帖仅楼主可见
8楼2014-09-19 22:03:07
已阅   申请程序强帖   回复此楼   编辑   查看我的主页
相关版块跳转 我要订阅楼主 ghost118 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 315求调剂 +7 小羊小羊_ 2026-04-02 7/350 2026-04-02 17:35 by wxiongid
[考研] 085600,材料与化工321分求调剂 +11 大馋小子 2026-03-28 11/550 2026-04-02 15:59 by yunlongyang
[考研] 311求调剂 +9 勇敢的小吴 2026-04-02 9/450 2026-04-02 11:37 by Sammy2
[考研] 272求调剂,接受跨专业调剂! +4 闲鱼卢 2026-03-31 4/200 2026-04-02 11:18 by guyan1000
[考研] 0710生物学求调剂 +9 manman511 2026-04-01 9/450 2026-04-02 10:00 by zxl830724
[考研] 生物学327,求调剂 +5 书上的梅子 2026-04-01 6/300 2026-04-02 06:47 by ilovexiaobin
[考研] 英一数一408,总分284,二战真诚求调剂 +12 12.27 2026-03-30 14/700 2026-04-02 00:18 by 欣喜777
[考研] 一志愿武理材料工程302调剂环化或化工 +15 Doleres 2026-03-31 16/800 2026-04-01 09:49 by lfj11
[考研] 339求调剂 +5 zjjkt 2026-03-31 5/250 2026-04-01 09:18 by JourneyLucky
[考研] 333求调剂 +4 阿科逸 2026-03-31 4/200 2026-04-01 09:11 by jp9609
[考研] 070300化学专业279调剂 +10 哈哈哈^_^ 2026-03-31 10/500 2026-03-31 23:13 by liu823948201
[考研] 343求调剂 +8 爱羁绊 2026-03-28 8/400 2026-03-31 16:12 by 不吃魚的貓
[考研] 求调剂 +8 11ggg 2026-03-30 8/400 2026-03-31 13:56 by nanaliuyun
[考研] 食品工程专硕一志愿中海洋309求调剂 +5 小张zxy张 2026-03-26 10/500 2026-03-31 00:29 by jp9609
[考研] 322求调剂 +10 宋明欣 2026-03-27 10/500 2026-03-30 18:47 by 544594351
[考研] 材料专硕 085600求调剂 +7 BBQ233 2026-03-30 7/350 2026-03-30 17:44 by oooqiao
[考研] 081200-11408-276学硕求调剂 +6 崔wj 2026-03-26 6/300 2026-03-29 01:11 by hanserlol
[考研] 本科新能源科学与工程,一志愿华理能动285求调剂 +7 AZMK 2026-03-28 11/550 2026-03-28 21:01 by xxxsssccc
[考研] 材料与化工(0856)304求B区调剂 +8 邱gl 2026-03-27 8/400 2026-03-28 12:42 by 唐沐儿
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-26 4/200 2026-03-27 08:04 by chemisry
信息提示
请填处理意见