求一用C语言画直线的程序
C语言的话画直线用MoveTo()和LineTo()很简单啊。
帮你复制一份我学习时老师给的画线画线两例:
#include<graphics.h>
#include<math.h>
/*
###############################################################################
功 能:本函数的作用是用逐点比较法来画一条直线
格 式:void myline1(int x1,int y1,int x2,int y2,int color)
参数说明:x1,y1是起始点坐标,x2,y2是终止点,color是画线的颜色
调用示例:myline1(,,,,4)
###############################################################################
*/
void myline1(int x1,int y1,int x2,int y2,int color)
{
/*变量定义开始(//增加)*/
int iTx; /*x轴终点的相对坐标xa或临时变量*/
int iTy; /*y轴终点的相对坐标ya或临时变量*/
int iDx; /*x轴方向的步长dx*/
int iDy; /*y轴方向的步长dy*/
int iFt; /*偏差Fm*/
int iSt; /*记数循环数(dx+dy)S*/
int iXt; /*x方向循环变量xm*/
int iYt; /*y方向循环变量ym*/
/*变量定义结束*/
/*变量初始化开始*/
/*如果是第三象限或第四象限则换成第一或第二象限*/
if(y2<y1)
{
iTx=x1;
x1=x2;
x2=iTx;
iTy=y1;
y1=y2;
y2=iTy;
}
iTx=x2-x1; /*取x轴的相对坐标*/
iTy=y2-y1; /*取y轴的相对坐标*/
iDx=1;
iDy=1;
iFt=0;
iSt=iTx+iTy;
if(iTx<0)iSt=-1*iTx+iTy;; /*如果在第二象限,则x轴方向步长取负值*/
iXt=0;
iYt=0;
/*变量初始化结束*/
/*数据处理开始*/
while(iSt>0)
{
putpixel(x1+iXt,源码y1+iYt,color);
if(iTx>=0) /*如果在第一象限*/
{
if(iFt<0) /*如果偏差小于0*/
{
iYt+=iDy; /*y方向走一步*/
iFt+=iTx;
}
else /*如果偏差大于或等于0*/
{
iXt+=iDx; /*x方向走一步*/
iFt-=iTy;
}
}
else
{
if(iFt<0) /*如果偏差小于0*/
{
iXt-=iDx; /*负x方向走一步*/
iFt+=iTy;
}
else /*如果偏差大于或等于0*/
{
iYt+=iDy; /*y方向走一步*/
iFt+=iTx;
}
}
iSt--;
}
}
/*
###############################################################################
功 能:本函数的作用是用来画一条直线
格 式:void myline2(int x1,int y1,int x2,int y2,int color)
参数说明:x1,y1是起始点坐标,x2,y2是终止点,color是画线的颜色
调用示例:myline2(,,,,4)
###############################################################################
*/
int myline2(int x1,int y1,int x2,int y2,int color)
{
int iX; /*x方向的坐标变量*/
int iY; /*y方向的坐标变量*/
int iTx; /*x方向的步长变量*/
int iTy; /*y方向的步长变量*/
float fDx; /*x方向的差分变量*/
float fDy; /*y方向的差分变量*/
float fMinf; /*算法中的f*/
float fMaxF; /*算法中的F*/
float fS; /*终点判断变量*/
fMinf=0.5; /*f=0.5*/
iX=x1;
iY=y1;
putpixel(x1,y1,color);
if(x1==x2&&y1==y2) /*如果终点和起始点相同*/
{
return(1);
}
iTx=1;
iTy=1;
fDx=(float)(x2-x1);
fDy=(float)(y2-y1);
fMaxF=fDy/fDx>0?fDy/fDx:(-fDy/fDx); /*F=|dy/dx|*/
if(fDx<0)iTx=-1;
if(fDy<0)iTy=-1;
fS=fDx>0?fDx:(-fDx);
if(fMaxF==1) /*如果F=1*/
{
iX=x1;
iY=y1;
while(fS>0)
{
iX+=iTx; /*x方向走一步*/
iY+=iTy; /*y方向走一步*/
putpixel(iX,iY,color);
fS--;
}
}
else if(fMaxF>1) /*如果F>1*/
{
fS+=fDy>0?fDy:(-fDy);
while(fS>0)
{
iY+=iTy; /*y方向走一步*/
putpixel(iX,iY,color);
fMinf+=1/fMaxF; /*f=f+1/F*/
fS--;
if(fMinf>=1) /*如果f>=1*/
{
iX+=iTx; /*x方向走一步*/
fMinf--; /*f=f-1*/
putpixel(iX,iY,color);
fS--;
}
}
}
else /*如果F<1*/
{
fS+=fDy>0?fDy:(-fDy);
while(fS>0)
{
iX+=iTx; /*x方向走一步*/
putpixel(iX,iY,color);
fMinf+=fMaxF; /*f=f+F*/
fS--;
if(fMinf>=1) /*如果f>=1*/
{
iY+=iTy; /*y方向走一步*/
fMinf--; /*f=f-1*/
putpixel(iX,iY,color);
fS--;
}
}
}
}
通达信 两点趋势交易主图源码
此主图提供丰富信息,需深入理解。斜率主图借助辅助趋势绘制函数,画线但关键交易逻辑未通过函数体现(如BS信号、源码Vxworks修改TCP源码买入与卖出指示、斜率考虑买点、画线找底线)。源码以下为操作指南:
一、斜率趋势法则
1. 第一法则:趋势黄线判断
2. 第二法则:红色区间上行,画线灰色区间调整
3. 第三法则:红色买入,源码白色减仓,斜率绿色清仓
4. 第四辅助法则:包含BS信号、画线买入与卖出文字指示、源码找底线与参考买线
二、参数设置
{ 参数1: N, 范围:1-,默认:5}
三、核心逻辑
1. X_1: 以2日的cocos 赛车游戏源码收盘价计算指数加权移动平均
2. X_2: 结合日移动斜率与收盘价,计算日指数加权移动平均
3. 当X_1高于X_2时,黄线显示,代表趋势上行
4. 画出K线图,显示价格波动
四、辅助法则
1. BS信号:长期坚持只赢不亏策略
2. 买入与卖出指示:通过文字显示调整仓位
3. 找底与参考买线:辅助判断买卖时机
五、决策与风险提示
决策线为5日移动平均线,当决策线高于前一日决策线时,显示红色,反之绿色;当决策线低于前一日决策线时,易语言源码骂人显示**;其他情况显示粉色。同时,需关注价格与决策线之间的交叉点与趋势变化。使用时,注意风险控制,仅供参考,不构成投资建议。
通达信软件指标全版更新:主图--“股神操盘”(源码)
通达信软件的主图指标“股神操盘”(附源码)提供了多个关键的技术分析工具,帮助投资者做出决策。烟锁重楼源码主要指标包括回归斜率线A、经典RL、经典K、经典D和经典J,它们结合了移动平均线和动量指标来评估股票趋势。MAHL1、MAHL2和MAHL3通过计算不同周期的平均价,提供了买入和卖出信号。此外,地图区域划分源码BBI、UPR、DWN、安全线和RSI等则用于衡量市场波动和超买超卖情况。
操作线A7和其移动平均线的操作、操作1和操作2,为买卖点提供了可视化提示,当满足特定条件时,如价格穿越支撑线,会显示“买进”信号。VAR1和VAR2用于确定股票的支撑和阻力区域,而YCX和H1、L1则帮助判断买卖时机。SK和SD指标则用于计算买卖点的趋势强度和转折点。
通过M1、M2和M3的多重条件判断,当所有条件满足时,会提示“买进”。同时,RSV、K、D1和J的计算配合VAR3和VAR4,以及E、F和G的移动平均,提供了买卖信号的图标提示。此外,还涉及了RSI、STICKLINE等图形化工具,用于显示价格突破、回调信号和趋势线。
最后,声明部分强调,这些指标仅供参考,不构成投资建议,投资者需自行判断并承担风险。对于可能存在的编码错误,建议私信联系处理。
2024-11-20 16:02
2024-11-20 15:45
2024-11-20 15:37
2024-11-20 14:32
2024-11-20 14:16