?? graphics.c
字號:
for(i=0;i<3;i++){
vLcd_DrawLine(x+35,y+i-6,x+41,y+i-4,FColor);
vLcd_DrawLine(x+35,y+i+40,x+41,y+i+39,FColor);
vLcd_DrawLine(x+41,y+i-4,x+48,y+i-1,FColor);
vLcd_DrawLine(x+41,y+i+39,x+48,y+i+36,FColor);
vLcd_DrawLine(x+11+i,y-4,x+14+i,y+10,FColor);
vLcd_DrawLine(x+14+i,y+10,x+10+i,y+16,FColor);
vLcd_DrawLine(x+10+i,y+16,x+13+i,y+21,FColor);
vLcd_DrawLine(x+13+i,y+21,x+10+i,y+32,FColor);
vLcd_DrawLine(x+10+i,y+32,x+12+i,y+41,FColor);
}
for(i=0;i<4;i++){
vLcd_DrawPartArc(x+54+i,y+18,30,FColor,5);
vLcd_DrawPartArc(x+54+i,y+18,30,FColor,6);
vLcd_DrawPartArc(x+30+i,y+18,25,FColor,4);
vLcd_DrawPartArc(x+30+i,y+19,25,FColor,7);
}
}
/**************************************************/
/*前霧燈 */
/**************************************************/
void vLcd_FFogLight(unsigned int x,unsigned int y,unsigned char FColor){
unsigned int i,j,k;
for(i=0;i<3;i++){
vLcd_DrawLine(x,y+14+i,x+24,y+4+i,FColor);
vLcd_DrawLine(x,y+26+i,x+22,y+16+i,FColor);
vLcd_DrawLine(x,y+38+i,x+24,y+28+i,FColor);
}
FFogLightModel(x,y,FColor);
}
/**************************************************/
/*后霧燈模型 */
/**************************************************/
void BFogLightModel(unsigned int x,unsigned int y,unsigned char FColor){
unsigned int i;
for(i=0;i<3;i++){
vLcd_DrawLine(x+7,y+2+i,x+14,y-2+i,FColor);
vLcd_DrawLine(x+14,y+i-2,x+18,y+i-4,FColor);
vLcd_DrawLine(x+18,y+i-4,x+24,y+i-5,FColor);
vLcd_DrawLine(x+7,y+34+i,x+14,y+36+i,FColor);
vLcd_DrawLine(x+14,y+36+i,x+18,y+38+i,FColor);
vLcd_DrawLine(x+18,y+38+i,x+24,y+39+i,FColor);
}
for(i=0;i<4;i++){
vLcd_DrawPartArc(x+25+i,y+18,25,FColor,5);
vLcd_DrawPartArc(x+25+i,y+18,25,FColor,6);
vLcd_DrawPartArc(x+2+i,y+18,30,FColor,4);
vLcd_DrawPartArc(x+2+i,y+18,30,FColor,7);
}
}
/**************************************************/
/*后霧燈 */
/**************************************************/
void vLcd_BFogLight(unsigned int x,unsigned int y,unsigned char FColor){
unsigned int i;
for(i=0;i<3;i++){
vLcd_DrawLine(x+36,y+4+i,x+60,y+14+i,FColor);
vLcd_DrawLine(x+38,y+16+i,x+60,y+26+i,FColor);
vLcd_DrawLine(x+36,y+28+i,x+60,y+38+i,FColor);
vLcd_DrawLine(x+47+i,y-2,x+43+i,y+8,FColor);
vLcd_DrawLine(x+43+i,y+8,x+48+i,y+16,FColor);
vLcd_DrawLine(x+48+i,y+16,x+45+i,y+19,FColor);
vLcd_DrawLine(x+45+i,y+19,x+48+i,y+30,FColor);
vLcd_DrawLine(x+48+i,y+30,x+44+i,y+41,FColor);
}
BFogLightModel(x,y,FColor);
}
/**************************************************/
/*燈光總開關 */
/**************************************************/
void vLcd_LightingSw(unsigned int x,unsigned int y,unsigned char FColor){
unsigned int i,k;
for(i=0;i<10;i++){
vLcd_DrawLine(x-6,y-24+i,x-9,y-24+i,FColor);
vLcd_DrawLine(x+6,y-24+i,x+9,y-24+i,FColor);
}
for(i=0;i<4;i++){
vLcd_DrawLine(x-8,y-25+i,x+8,y-25+i,FColor);
vLcd_DrawCircle(x,y,14+i,FColor,0);
vLcd_DrawCircle(x,y+6,i,FColor,0);
vLcd_DrawLine(x-23,y-18+i,x-18,y-11+i,FColor);
vLcd_DrawLine(x+23,y-18+i,x+18,y-11+i,FColor);
vLcd_DrawLine(x+13,y+14+i,x+22,y+22+i,FColor);
vLcd_DrawLine(x-13,y+14+i,x-22,y+22+i,FColor);
}
for(i=0;i<3;i++){
vLcd_DrawLine(x-29,y+i,x-19,y+i,FColor);
vLcd_DrawLine(x+19,y+i,x+28,y+i,FColor);
}
for(i=0;i<12;i++){
vLcd_DrawPartArc(x,y-8+i,2,FColor,0);
vLcd_DrawPartArc(x,y-8+i,2,FColor,1);
}
for(i=1;i<12;i++)
vLcd_DrawLine(x-1,y+18+i,x+1,y+18+i,FColor);
}
/**************************************************/
/*安全帶 */
/**************************************************/
void vLcd_SafetyBeltt(unsigned int x,unsigned int y,unsigned char FColor){
unsigned int i,j,k;
for(i=0;i<4;i++){
vLcd_DrawPartArc(x,y+i,6,FColor,0);
vLcd_DrawPartArc(x,y+i,6,FColor,1);
vLcd_DrawPartArc(x,y+i,6,FColor,4);
vLcd_DrawPartArc(x,y+i,6,FColor,5);
vLcd_DrawPartArc(x,y+i,6,FColor,6);
vLcd_DrawPartArc(x,y+i,6,FColor,7);
vLcd_DrawLine(x-3,y+6+i,x-2,y+6+i,FColor);
vLcd_DrawLine(x+2,y+6+i,x+4,y+6+i,FColor);
vLcd_DrawLine(x-24,y+40+i,x+22,y+2+i,FColor);
vLcd_DrawPartArc(x,y+60+i,32,FColor,0);
vLcd_DrawPartArc(x,y+60+i,32,FColor,1);
}
for(i=0;i<3;i++){
vLcd_DrawLine(x-3,y+9+i,x-10,y+14+i,FColor);
vLcd_DrawLine(x+2,y+9+i,x+10,y+14+i,FColor);
vLcd_DrawLine(x-10,y+14+i,x-12,y+17+i,FColor);
vLcd_DrawLine(x+10,y+14+i,x+11,y+17+i,FColor);
vLcd_DrawLine(x-12+i,y+17,x-15+i,y+31,FColor);
vLcd_DrawLine(x+11+i,y+17,x+13+i,y+30,FColor);
vLcd_DrawLine(x-14+i,y+31,x-15+i,y+37,FColor);
vLcd_DrawLine(x+15+i,y+29,x+14+i,y+37,FColor);
}
for(i=0;i<2;i++){
vLcd_DrawPartArc(x+10+i,y+34,27,FColor,6);
vLcd_DrawPartArc(x+12+i,y+35,25,FColor,6);
vLcd_DrawPartArc(x-12+i,y+34,27,FColor,7);
vLcd_DrawPartArc(x-14+i,y+35,25,FColor,7);
vLcd_DrawPartArc(x,y+48+i,15,FColor,0);
vLcd_DrawPartArc(x,y+48+i,15,FColor,1);
vLcd_DrawLine(x-8,y+54+i,x-6,y+53+i,FColor);
vLcd_DrawLine(x+8,y+53+i,x+5,y+52+i,FColor);
}
}
/**************************************************/
/*車速表 值 ("0<Value<160") */
/**************************************************/
void vLcd_GuageValueInit(unsigned int x,unsigned int y,unsigned char FColor){
unsigned char i,k;
OldSpeedValue=0;
vLcd_GuageValue(x,y,FColor,FColor,160);
OldSpeedValue=0;
for(i=0;i<1;i++)
vLcd_DrawLine(x,y+2+i,x+160,y+2+i,FColor);
for(i=0;i<5;i++){
vLcd_DrawLine(x,y+2+i,x+1,y+2+i,FColor);
vLcd_DrawLine(x+79,y+2+i,x+80,y+2+i,FColor);
vLcd_DrawLine(x+160,y+2+i,x+161,y+2+i,FColor);
}
for(k=1;k<8;k++)
for(i=0;i<4;i++){
vLcd_DrawLine(x+20*k+1,y+2+i,x+20*k+1,y+2+i,FColor);
}
vLcd_Disply16DotHz(y+6,x-8,Zero,1,FColor);
vLcd_Disply16DotHz(y+6,x+64,Eighty,2,FColor);
vLcd_Disply16DotHz(y+6,x+142,OneSixZero,3,FColor);
}
void DrawUpright(unsigned int x,unsigned int y,unsigned char FColor,
unsigned int Hi){
unsigned char i;
for(i=0;i<Hi;i++)
vLcd_DrawLine(x,y-i,x+2,y-i,FColor);
}
void vLcd_GuageValue(unsigned int x,unsigned int y,unsigned char FColor1,
unsigned char FColor2,unsigned int NewValue){
unsigned char i,k,Fs;
Fs=0;
if(NewValue>OldSpeedValue){
k=20;
for(i=0;i<=NewValue;i+=4){
if(Fs>1){
Fs=0; k++;
}
DrawUpright(x+i,y,FColor1,k);
Fs++;
}
}
else if(NewValue<OldSpeedValue){
k=40; //標準為39.
for(i=160;i>=NewValue;i-=4){
if(Fs>1){
Fs=0; k--;
}
DrawUpright(x+i,y,FColor2,k);
Fs++;
}
}
OldSpeedValue=NewValue;
}
/**************************************************/
/*水溫表 值("-40<Value<210") */
/**************************************************/
void vLcd_WaterGuageInit(unsigned int x,unsigned int y,unsigned char FColor){
unsigned char i;
OldWaterTValue=0;
vLcd_WaterGuageTValue(x,y,FColor,FColor,-40);
for(i=0;i<100;i++)
vLcd_DrawLine(x+16,y+i,x+19,y+i,FColor);
for(i=0;i<3;i++){
vLcd_DrawLine(x+18,y+i,x+23,y+i,FColor);
vLcd_DrawLine(x+18,y+89+i,x+23,y+89+i,FColor);
vLcd_DrawLine(x+16,y+100+i,x+23,y+100+i,FColor);
}
vLcd_Disply16DotHz(y+81,x+24,Zero,1,FColor);
}
void DrawHorizotal(unsigned int x,unsigned int y,unsigned char FColor){
unsigned char i;
for(i=0;i<3;i++)
vLcd_DrawLine(x,y+i,x+14,y+i,FColor);
}
void vLcd_WaterGuageTValue(unsigned int x,unsigned int y,unsigned char FColor1,
unsigned char FColor2,int NewValue){
unsigned char i;
NewValue=(2*(210-NewValue))/5;
if(NewValue>OldWaterTValue){
for(i=0;i<NewValue;i+=4)
DrawHorizotal(x,y+i,FColor2);
}
else if(NewValue<OldWaterTValue){
for(i=100;i>NewValue;i-=4)
DrawHorizotal(x,y+i,FColor1);
}
OldWaterTValue=NewValue;
}
/**************************************************/
/*燃油表 值("E<Value<F") */
/**************************************************/
void vLcd_OilGuageInit(unsigned int x,unsigned int y,unsigned char FColor){
unsigned char i;
OldOilValue=0;
vLcd_OilGuageTValue(x,y,FColor,FColor,600,600);
for(i=0;i<100;i++)
vLcd_DrawLine(x+16,y+i,x+19,y+i,FColor);
for(i=0;i<3;i++){
vLcd_DrawLine(x+18,y+i,x+23,y+i,FColor);
vLcd_DrawLine(x+18,y+24+i,x+23,y+24+i,FColor);
vLcd_DrawLine(x+18,y+49+i,x+23,y+49+i,FColor);
vLcd_DrawLine(x+18,y+74+i,x+23,y+74+i,FColor);
vLcd_DrawLine(x+16,y+97+i,x+23,y+97+i,FColor);
}
}
void vLcd_OilGuageTValue(unsigned int x,unsigned int y,unsigned char FColor1,
unsigned char FColor2,unsigned int NewValue,unsigned int TotalV){
unsigned char i;
NewValue=(NewValue*100)/TotalV;
if(NewValue>OldOilValue){
for(i=0;i<NewValue;i+=4)
DrawHorizotal(x,y+i,FColor2);
}
else if(NewValue<OldOilValue){
for(i=100;i>NewValue;i-=4)
DrawHorizotal(x,y+i,FColor1);
}
OldOilValue=NewValue;
}
void vLcd_MainFrm(unsigned char FColor){
unsigned int i,j,k;
for(i=0;i<2;i++){
vLcd_DrawLine(15,15+i,625,15+i,FColor);
vLcd_DrawLine(15,95+i,315,95+i,FColor);
vLcd_DrawLine(15,175+i,625,175+i,FColor);
vLcd_DrawLine(15,255+i,625,255+i,FColor);
}
for(i=0;i<240;i++){
vLcd_DrawLine(15,15+i,16,15+i,FColor);
vLcd_DrawLine(115,15+i,116,15+i,FColor);
vLcd_DrawLine(215,15+i,216,15+i,FColor);
vLcd_DrawLine(315,15+i,316,15+i,FColor);
vLcd_DrawLine(624,15+i,625,15+i,FColor);
}
for(i=0;i<160;i++)
vLcd_DrawLine(465,15+i,466,15+i,FColor);
}
void vApp_GraphicsInit(unsigned char BColor){//示意圖初時化
vLcd_ClearViewport(0x22);
vLcd_MainFrm(0x05); //框架
vLcd_LightingSw(65,55,BColor); //燈絲檢測報警指示燈
vLcd_SafetyBeltt(165,30,BColor); //安全帶指示燈
vLcd_LTurnIndn(230,55,BColor); //主車轉向指示(左)
vLcd_RTurnIndn(270,55,BColor); //主車轉向指示(右)
vLcd_FFogLight(35,115,BColor); //前霧燈指示燈
vLcd_BFogLight(235,115,BColor); //后霧燈指示燈
vLcd_LHighBeam(135,115,BColor); //遠光指示燈
WindScreenModel(65,242,BColor); //風窗玻璃
vLcd_WashInstr(65,242,BColor); //刮水器指示燈
vLcd_ScrapeWaterInstr(65,242,BColor); //洗滌器指示燈
vLcd_LDippedHeadLight(135,195,BColor);//近光燈指示燈
vLcd_BatteryState(240,195,BColor); //電池
vLcd_FuelPic(340,60,BColor); //燃油表
vLcd_OilGuageInit(410,40,BColor); //燃油值示意
vLcd_WaterTemperature(510,70,BColor); //水溫表
vLcd_WaterGuageInit(560,40,BColor); //溫度值示意
vLcd_GuageValueInit(350,225,BColor); //車速表
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -