y=x三次方围成的图形

发布网友

我来回答

2个回答

热心网友

你这个问题没说清楚吧,y=x^3是一条曲线,奇函数,关于原点中心对称,在x轴正半轴是一个凹函数,递增。不知道你还想知道什么相关的属性

热心网友

turboc 演示 y=x三次方 曲线

#include <dos.h>
#include <fcntl.h>
#include <io.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

#define TEXT_BIG_CURSOR 0
#define TEXT_NORMAL_CURSOR 7

typedef struct /*16Mrgb像素类型*/
{
unsigned char b;
unsigned char g;
unsigned char r;
}rgb16M;

float MulDiv(float Number, float Numerator, float Denominator);
void getpixel(int x, int y, rgb16M *color);
void line(int startx, int starty, int endx, int endy, rgb16M color);
void fillbox_(int startx, int starty, int endx, int endy, rgb16M color);

static int g_lastpage = 50;

unsigned char set_SVGA_mode(int vmode)
{union REGS r;
r.x.ax=0x4f02;
r.x.bx=vmode;
int86(0x10,&r,&r);
return(r.h.ah);
}

void hide_text_cursor(void)
{union REGS r;
r.h.ah=1;
r.h.ch=32;
int86(0x10,&r,&r);
}

void selectpage(register char page)
{union REGS r;
r.x.ax=0x4f05;
r.x.bx=0;
r.x.dx=page;
int86(0x10,&r,&r);
}

void show_text_cursor(char size)
{union REGS r;
r.h.ah=1;
r.h.cl=size;
r.h.ch=7;
int86(0x10,&r,&r);
}

unsigned int get_SVGA_mode()
{union REGS r;
r.x.ax=0x4f03;
int86(0x10,&r,&r);
return(r.x.bx);
}

unsigned int Vmode=0;
void init16M()
{Vmode=get_SVGA_mode();
hide_text_cursor();
if(set_SVGA_mode(0x118))
{printf("\nSorry, Your graphics driver does not supplied.\n");
show_text_cursor(TEXT_NORMAL_CURSOR);
exit(0);
}
}

void close16M()
{
union REGS r;
r.h.ah = 0;
r.h.al = 3;
int86(0x10, &r, &r);
r.h.ah = 0x05;
r.h.al = 0;
int86(0x10, &r, &r);
}

void putpoint16M(int x, int y, rgb16M color)
{
static int nowpage = 0, lastpage = 50;
static long temp;
unsigned char far *p = (unsigned char *)0xa0000000;
temp = y;
x <<= 2;
temp <<= 12;
temp += x;

nowpage = temp >> 16;
temp &= 0xffff;
if (nowpage != g_lastpage)
{
static union REGS r;
r.x.ax = 0x4f05;
r.x.bx = 0;
r.x.dx = nowpage;
int86(0x10, &r, &r);
g_lastpage = nowpage;
}

*((rgb16M *)(p + temp)) = color;
}

void line(int startx, int starty, int endx, int endy, rgb16M color)
{
register int t, distance;
int x = 0, y = 0;
int delta_x, delta_y;
int incx, incy;

delta_x = endx-startx;
delta_y = endy-starty;

if (delta_x > 0) incx = 1;
else if(delta_x == 0) incx = 0;
else incx = -1;
if(delta_y > 0) incy = 1;
else if (delta_y == 0) incy = 0;
else incy = -1;

if (delta_x < 0) delta_x = -delta_x;
if (delta_y < 0) delta_y = -delta_y;

if(delta_x > delta_y) distance = delta_x;
else distance = delta_y;

for (t = 0; t <= distance + 1; t++){
putpoint16M(startx, starty, color);
x += delta_x;
y += delta_y;
if (x > distance){
x -= distance;
startx += incx;
}
if(y > distance){
y -= distance;
starty += incy;
}
}
}

void fillbox_(int startx, int starty, int endx, int endy, rgb16M color)
{
int i, j;

if (startx > endx)
{
i = startx;
startx = endx;
endx = i;
}
if (starty > endy)
{
i = starty;
starty = endy;
endy = i;
}
if (startx < 0)
startx = 0;
if (endx > 1023)
endx = 1023;
if (starty < 0)
starty = 0;
else if (endy > 767)
endy = 767;

for (j = starty; j <= endy; j++)
for (i = startx; i <= endx; i++)
putpoint16M(i, j, color);
}

int main(void)
{
int i, j;
float x, y, x1, y1;
rgb16M color;

init16M();

color.r = 255;
color.g = 255;
color.b = 255;
fillbox_(0, 0, 1023, 767, color);
color.r = 127;
color.g = 127;
color.b = 127;
line(0, 384, 1023, 384, color);
line(512, 0, 512, 767, color);

x1 = -6;
y1 = x1 * x1 * x1;
color.r = 255;
for (x = -6; x <= 6; x += 0.001)
{
y = x * x * x;
line(512 + 50 * x, 384 - 3 * y, 512 + 50 * x1, 384 - 3 * y1, color);
y1 = y;
x1 = x;
}

getch();

close16M();

return 0;

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com