三角函数(包括反三角函数)怎么不调用库实现,可以取代math库 ?急求!

在不调用库的情况下,自己写一个三角函数(包括反三角函数)的计算器

1个回答

使用cord ic算法,只需要移位和加减法就可以计算三角函数,具体算法可以百度一下。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
三角函数tanpi怎样计算

为什么在Vc++6.0中 tan 3.1415926 = -0

三角函数在运行时产生的奇怪问题

很奇怪的一个问题,不知道是什么原因导致的 ``` double tanx = prepoint.x - currentpoint.x; double tany = prepoint.y - currentpoint.y; double arcangle = atan(fabs(tany / tanx))*180.0 / CV_PI; if (tanx < 0 && tany < 0) { //第一象限 } else if (tanx > 0 && tany < 0) { //第二象限 arcangle = 180 - arcangle; } else if (tanx > 0 && tany > 0) { //第三象限 arcangle = 180 + arcangle; } else if (tanx < 0 && tany > 0) { //第四象限 arcangle = -arcangle; } cout << "arcangle::::::::" << arcangle << endl; double arcangle2 = arcangle; if (tanx < 1.5 || tanx >-1.5) { tanx = 0.0; arcangle = atan(fabs(tany / tanx))*180.0 / CV_PI; } if (tany < 1.5 || tany >-1.5) { tany = 0.0; arcangle = atan(fabs(tany / tanx))*180.0 / CV_PI; } if(arcangle2 != arcangle) cout <<"arcangle:" <<arcangle << endl; ```

定义函数,打印等腰三角形

打印一个n行的由字符c组成的等腰三角形,主函数给出3个调用,分别打出7行“*”,11行“@”,20行“$”组成的等腰三角形。尽量使图形居中打印。我写的程序如下 #include<stdio.h> voidDrawPic(int n,char c); int main() { int n; scanf("%d",&n); voidDrawPic(n,*); printf("\n"); voidDrawPic(n,@); printf("\n"); voidDrawPic(n,char $); return 0; } voidDrawPic(int n,char c) { int i,j; for(i=1;i<=n;i++) { for(j=1;j<n;j++) { printf(" "); } for(j=1;j<=2*i-1;j++) { printf("%c"); } } return 0 ; }

java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么?

java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么?

提供一个函数,此函数用来打印由“*”组成的矩形,但是行数和列数,做为形参,由调用者来给具体的行数和列

提供一个函数,此函数用来打印由“*”组成的矩形,但是行数和列数,做为形参,由调用者来给具体的行数和列 请问他的判断条件是什么 js的 谢谢

求助 求正弦函数幅值的算法编写

![图片说明](https://img-ask.csdn.net/upload/201712/22/1513919222_495750.jpg)

跪求各位大佬们解答,小弟万分感激!利用海伦公式编程求三角形的面积

利用海伦公式和函数调用,怎样编程出一个求三角行的程序啊?![图片](https://img-ask.csdn.net/upload/201712/02/1512221083_667118.jpg)

小白求教C++怎样用函数输出图形

原题是这样的 二、设计以下三个函数:dispRectangle()、dispRightAngledTriangle()、dispIsoscelesTriangle(),分别用来显示由指定字符和指定行数构成的矩形、直角三角形和等腰三角形。并在主函数给出如图1所示的菜单(就是很简单的那种输入一二三的菜单,我就不写了,大神们肯定都懂),输入选项,调用相应的图形显示函数。 #include<iostream> using namespace std; void dispRectangle(int,int,char); void dispRightAngledTriangle(int,char); void dispIsoscelesTriangle(int,char); int main() { int a,b,c,d,e,f,g,k; do{ cout<<"1.输出矩形"<<endl; cout<<"2.输出直角三角形"<<endl; cout<<"3.输出等腰三角形"<<endl; int xuhao; cin>>xuhao; switch(xuhao) { case 1: cout<<"你选择了矩形"<<endl; cout<<"请分别输入矩形的行数和宽还有符号"<<endl; cin>>a>>b>>c; cout<<dispRectangle(a,b,c)<<endl; break; case 2: cout<<"你选择了直角三角形"<<endl; cout<<"请分别行数和符号"<<endl; cin>>d,e; cout<<dispRightAngledTriangle(d,e)<<endl; break; case 3: cout<<"你选择了等腰三角型"<<endl; cout<<"请分别输入行数和符号"<<endl; cin>>f>>g; cout<<dispIsoscelesTriangle(f,g)<<endl; break; default: cout<<"选择错误,请重新输入!"<<endl; } cout<<"若需要继续计算请按1"<<endl; cin>>k; } while(k==1); return 0; } void dispRectangle(int a,int b,char c) { for(int i=0;i<a;i++) for(int j=0;j<b;j++) cout<<b<<endl; } void dispRightAngledTriangle(int d,char e) { for(int i=0;i<d;i++) { for(int j=0;j<=i;j++) cout<<e<<endl; } } void dispIsoscelesTriangle(int f,char g) { for(int i=0;i<f;i++) { for(int j=0;j<=f-i-1;j++) cout<<" "<<endl; for(int w=0;w<2*i+1;w++) cout<<g<<endl; } } 我不知道这样对不对,他显示 cpp(21) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'void' (or there is no acceptable conversion) cpp(27) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'void' (or there is no acceptable conversion) cpp(33) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'void' (or there is no acceptable conversion) 执行 cl.exe 时出错. 大神们,拜托帮我改一下,非常谢谢。

c语言计算三角形面积,存在不懂知识

# include <stdio.h> # include <math.h> double main() { double a,b,c,size,area; a=3.1; b=4.1; c=5.1; size=area(a,b,c); printf("the size of this triangle is:%lf\n",size); return 0; } double area(double a,double b,double c) { double area,s; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); return area; } error C2064: term does not evaluate to a function这是错误信息,希望大神指导

急求!简单计算器代码!

请问用逆波兰函数和栈写计算器代码怎么写啊?能不能顺便注上解释,非常感谢!

怎样定义两个函数,并在主函数中输出结果,下面代码有什么错误

#include <stdio.h> int main() { float max_(); float min_(); int i; float a[5]; for(i=0;i<5;i++) scanf("%f",&a[i]); max_(); min_(); printf("max=%.1f,min=%.1f\n",max_(),min_()); return 0; } float max_() { int i; float a[5],max; max=a[0]; for(i=1;i<=5;i++) { if(max<a[i]) max=a[i]; } return max; } float min_() { int i; float a[5],min; min=a[0]; for(i=1;i<=5;i++) { if(min>a[i]) min=a[i]; } return min; }

判断输入的3个数是否能构成三角形,如果能构成三角形,则判断其是哪一种三角形

#include<stdio.h> #include<math.h> int mian() { float a,b,c; scanf("%f%f%f",&a,&b,&c); if((a+b)>c&&(a+c)>b) { if(fabs(a-b)<=1e-6&&fabs(b-c)<=1e-6) printf("等边三角形"); else if(fabs(a-b)<=1e-6||fabs(b-c)<=1e-6||fabs(a-c)<=1e-6) printf("等腰三角形"); else if(fabs(a*a+b*b-c*c)<=1e-6||fabs(a*a+c*c-b*b)<=1e-6||fabs(b*b+c*c-a*a)<=1e-6) printf("直角三角形"); else printf("一般三角形"); } else printf("不能构成三角形"); }

编写程序,生成并输出杨辉三角形(10行)。

在C语言中,运用数组,编写程序,生成并输出杨辉三角形(10行)。

如何用JavaScript实现方位角计算并且调用指针指示角度?

``` ```<!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta content="always" name="referrer"> <meta name="theme-color" content="#2932e1"> <title>RCP For A320NG</title> </head> <body> <style> .shu { width: 2px; font-size: 15px; word-wrap: break-word; } @font-face{ font-family: digital-display; src: url('digital-display.ttf'), url('digital-display.eot'); /* IE9+ */ } .Digits{ position:absolute; top:120px;left:10px; height:60px;width:230px; line-height:60px; color:white; font-size:70px;font-family:digital-display; display:block; float:left; text-align:right; } .to_top { width: 0; height: 0; border-bottom: 30px solid white; border-left: 20px solid transparent; border-right: 20px solid transparent; } .top{ width: 0; height: 0; border-bottom: 30px solid white; border-left: 20px solid transparent ; border-right: 20px solid transparent ; } </style> <div id="DME1" class = "Digits" style="">1.300</div> <div id="DME2" class = "Digits" style="left:260px;">----</div> <div id="asd"style="position: absolute; top:600px;left:200px;font-family: Microsoft YaHei;letter-spacing:5px;color:white;">ADF</div> <div id="asd1"style="position: absolute; top:600px;left:350px;font-family: Microsoft YaHei;letter-spacing:5px;color:white;">ADF</div> <div id="asd2"class="shu" style="position: absolute; left:80px;top:470px;font-family: Microsoft YaHei;color:white;">VOR</div> <div id="asd3"class="shu" style="position: absolute; left:480px;top:470px;font-family: Microsoft YaHei;color:white;">VOR</div> <div id="mat"class="to_top" style="position: absolute; left:60px;top:570px;color:white;"></div> <div id="mat2"style="position: absolute; width:10px;height:10px;border:1px solid white;left:75px;top:600px;background:white;"></div> <div id="mat3"style="position: absolute; width:10px;height:10px;border:1px solid white;left:75px;top:615px;background:white;"></div> <div id="mat4"style="position: absolute; width:10px;height:10px;border:1px solid white;left:75px;top:630px;background:white;"></div> <div id="ExchangeBtn" class="button" style="position:absolute; left:470px;top:600px;font-size:90px;font-weight:bold;font-family: Microsoft YaHei;line-height:15px;color:white;">&#8679;</div> <canvas id="solar" style="border:0px solid;left:10px;top:10px;position:absolute;z-index:-1;width:560px;height:670px;scale:0.5;"></canvas> <div id="Message" ></div> <div id="Message2" ></div> </body> <script> init(); let pi = Math.PI; let DialCenterX = 275; let DialCenterY = 400; let DialRadius = 180; let CompassHeading = 0; let Latitude=0; let Longitude=0; let DME1_lat= 39.10960; let DME1_long= 117.35343; let DME1Distance = 0; let hand1=30; //VOR方位角 let hand2=0; let gap_dial_hand = 60; let hand_length = DialRadius - gap_dial_hand; window.addEventListener("deviceorientation", findNorth); var Message =document.getElementById("Message"); var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端 iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部 weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增) qq: u.match(/\sQQ/i) == " qq" //是否QQ }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase() } function draw(ctx,DialDeg,HandDeg1,HandDeg2){ //drawDial(ctx,DialDeg); //绘制表盘 //drawAllHands(ctx,HandDeg1,HandDeg2); //绘制时分秒针 requestAnimationFrame(function step(){ getLocation(); DME1Distance = getDisance(Latitude, Longitude, DME1_lat, DME1_long); if(DME1Distance>722094) DME1Distance="----"; document.getElementById("DME1").innerHTML = DME1Distance; drawDial(ctx,CompassHeading); //绘制表盘 drawAllHands(ctx,hand1,hand2); //绘制时分秒针 requestAnimationFrame(step); }); } function toRad(d) { return d * Math.PI / 180; } function getDisance(lat1, lng1, lat2, lng2) { //lat为纬度, lng为经度, 一定不要弄错 var dis = 0; var radLat1 = toRad(lat1); var radLat2 = toRad(lat2); var deltaLat = radLat1 - radLat2; var deltaLng = toRad(lng1) - toRad(lng2); var dis = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(deltaLat / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(deltaLng / 2), 2))); dis = dis * 6378137; dis = dis ;///1852 ;//转为海里 return dis.toFixed(1); } function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else{ Message.innerHTML="Geolocation is not supported by this browser."; } } function showPosition(position) { Message.innerHTML="Latitude: " + position.coords.latitude + "<br />Longitude: " + position.coords.longitude +"<br/>accuracy:"+ position.coords.accuracy; Latitude = position.coords.latitude; Longitude = position.coords.longitude; } function findNorth(evt) { if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { CompassHeading = 360-evt.webkitCompassHeading.toFixed(0); //window.location.href ="iPhone.html"; } else if (/(Android)/i.test(navigator.userAgent)) { //alert(navigator.userAgent); CompassHeading = evt.alpha -90; document.getElementById("Message2").innerHTML = "您的手机需要校准指南针,请将手机指向正北后刷新页面。"; } else { } } function init(){ let canvas = document.querySelector("#solar"); canvas.width = 560; canvas.height = 670; let ctx = canvas.getContext("2d"); drawOutline(ctx); //strokeRoundRect(ctx, 10, 10, 100, 50, 10); fillRoundRect(ctx, 40, 95, 216, 124, 30, 'rgba(99,116,122,1)'); fillRoundRect(ctx, 50, 105, 192, 68, 15, 'rgba(0,0,0,1)'); fillRoundRect(ctx, 295, 95, 216, 124, 30, 'rgba(99,116,122,1)'); fillRoundRect(ctx, 305, 105, 192, 68, 15, 'rgba(0,0,0,1)'); //fillRoundRect(ctx, 50, 50, 450, 600, 20, 'rgba(0,0,0,1)'); draw(ctx,30,30,60); ctx.font = '20px "微软雅黑"'; ctx.fillStyle = "white"; ctx.fillText("DME-1", 110, 200); ctx.font = '20px "微软雅黑"'; ctx.fillStyle = "white"; ctx.fillText("DME-2", 370, 200); } /*绘制时分秒针*/ function drawAllHands(ctx,HandDeg1,HandDeg2){ let time = new Date(); let s = time.getSeconds(); let m = time.getMinutes(); let h = time.getHours(); let pi = Math.PI; let secondAngle = HandDeg1;//pi / 180 * 6 * s; //计算出来s针的弧度 let minuteAngle = pi / 180 * HandDeg1; //计算出来分针的弧度 let hourAngle = pi / 180 *HandDeg2;//pi / 180 * 30 * h + minuteAngle / 12; //计算出来时针的弧度 // drawHand2(hand2 + CompassHeading, hand_length, 2, "white", ctx); //绘制时针,(角度,针长,粗细,颜色,canvas) drawHand(hand1 + CompassHeading, hand_length, 2, "white", ctx); //绘制分针 //drawHand(secondAngle, 150, 2, "blue", ctx); //绘制秒针 } /*绘制时针、或分针、或秒针 * 参数1:要绘制的针的角度 * 参数2:要绘制的针的长度 * 参数3:要绘制的针的宽度 * 参数4:要绘制的针的颜色 * 参数4:ctx * */ function drawHand(angle, len, width, color, ctx){ ctx.save(); ctx.translate(DialCenterX, DialCenterY); //把坐标轴的远点平移到原来的中心 ctx.rotate(angle*pi/180 + pi/2); //旋转坐标轴。 x轴就是针的角度,rad ctx.beginPath(); ctx.moveTo(-DialRadius + gap_dial_hand, 0); //ctx.lineTo(len, 0); // 沿着x轴绘制针 ctx.font="18px microsoft yahei"; ctx.fillStyle="white"; var x = 4-DialRadius + gap_dial_hand; //指针起点x ctx.fillText("◀",x,6); for(i=x+5;i<len;){ ctx.moveTo(i, 0); ctx.lineTo(i+10, 0); i = i+20; } ctx.lineWidth = width; ctx.strokeStyle = color; ctx.lineCap = "round"; ctx.stroke(); ctx.closePath(); ctx.restore(); } function drawHand2(angle, len, width, color, ctx){ ctx.save(); ctx.translate(DialCenterX, DialCenterY); //把坐标轴的远点平移到原来的中心 ctx.rotate(angle*pi/180 +pi/2); //旋转坐标轴。 x轴就是针的角度 ctx.beginPath(); ctx.moveTo(-DialRadius + gap_dial_hand, 0); //ctx.lineTo(len, 0); // 沿着x轴绘制针 ctx.font="30px microsoft yahei"; ctx.fillStyle="white"; var x = -DialRadius + gap_dial_hand; ctx.moveTo(x, 0); ctx.lineTo(x+20, 10);ctx.lineTo(x+20, 5); ctx.lineTo(len, 5);ctx.lineTo(len, -5); ctx.lineTo(x+20, -5);ctx.lineTo(x+20, -10); ctx.lineTo(x, 0); ctx.lineWidth = width; ctx.strokeStyle = color; ctx.lineCap = "round"; ctx.stroke(); ctx.closePath(); ctx.restore(); } /*绘制表盘*/ function drawDial(ctx,DialDeg){ let pi = Math.PI; //ctx.clearRect(0, 0, 600, 600); //清除所有内容 ctx.save(); ctx.translate(DialCenterX, DialCenterY); //移动坐标原点到原来的中心 ctx.beginPath(); ctx.arc(0, 0, DialRadius, 0, 2*pi); //绘制圆周 //ctx.stroke(); //context.clip(); ctx.closePath(); // 填充颜色 ctx.fillStyle = "#202020"; ctx.fill(); for (let i = 0; i < 72; i++){//绘制刻度盘和数字 ctx.save(); ctx.rotate(pi/180*DialDeg + i * pi / 36); //旋转坐标轴。修改第一个参数可以旋转表盘 ctx.beginPath(); ctx.moveTo(DialRadius-37, 0); if(i % 2 == 0){ ctx.lineTo(DialRadius-1, 0); }else{ ctx.lineTo(DialRadius-16, 0); } ctx.lineWidth = i % 5 ? 4 : 4; ctx.strokeStyle = i % 5 ? "white" : "white"; ctx.stroke(); ctx.closePath(); if(i % 6 == 0){ ctx.lineWidth = 1; ctx.font="24px microsoft yahei"; //ctx.strokeText(i/3,0,-150); //填充 ctx.fillStyle="white"; if(i>9) ctx.fillText(i*0.5,-12,60-DialRadius); //-150 else ctx.fillText(i*0.5,-6,60-DialRadius); } ctx.restore(); } for (let i = 0; i < 8; i++){//绘制三角标 ctx.save(); ctx.rotate(pi/180*0 + i * pi / 4); //旋转坐标轴。修改第一个参数可以旋转表盘 ctx.font="24px microsoft yahei"; ctx.fillStyle="white"; ctx.fillText("▼",-12,-1*DialRadius); ctx.restore(); } ctx.restore(); } VincentyConstants = { a: 6378137, b: 6356752.3142, f: 1/298.257223563 } /** *Calculate destination point given start point lat/long (numeric degrees), * bearing (numeric degrees) & distance (in m). */ function destinationVincenty(lonlat, brng, dist) { var u = this; var ct = u.VincentyConstants; var a = ct.a, b = ct.b, f = ct.f; var lon1 = lonlat.lon*1; //乘一(*1)是为了确保经纬度的数据类型为number var lat1 = lonlat.lat*1; var s = dist; var alpha1 = u.rad(brng); var sinAlpha1 = Math.sin(alpha1); var cosAlpha1 = Math.cos(alpha1); var tanU1 = (1-f) * Math.tan(u.rad(lat1)); var cosU1 = 1 / Math.sqrt((1 + tanU1*tanU1)), sinU1 = tanU1*cosU1; var sigma1 = Math.atan2(tanU1, cosAlpha1); var sinAlpha = cosU1 * sinAlpha1; var cosSqAlpha = 1 - sinAlpha*sinAlpha; var uSq = cosSqAlpha * (a*a - b*b) / (b*b); var A = 1 + uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq))); var B = uSq/1024 * (256+uSq*(-128+uSq*(74-47*uSq))); var sigma = s / (b*A), sigmaP = 2*Math.PI; while (Math.abs(sigma-sigmaP) > 1e-12) { var cos2SigmaM = Math.cos(2*sigma1 + sigma); var sinSigma = Math.sin(sigma); var cosSigma = Math.cos(sigma); var deltaSigma = B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)- B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM))); sigmaP = sigma; sigma = s / (b*A) + deltaSigma; } var tmp = sinU1*sinSigma - cosU1*cosSigma*cosAlpha1; var lat2 = Math.atan2(sinU1*cosSigma + cosU1*sinSigma*cosAlpha1, (1-f)*Math.sqrt(sinAlpha*sinAlpha + tmp*tmp)); var lambda = Math.atan2(sinSigma*sinAlpha1, cosU1*cosSigma - sinU1*sinSigma*cosAlpha1); var C = f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha)); var L = lambda - (1-C) * f * sinAlpha * (sigma + C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM))); var revAz = Math.atan2(sinAlpha, -tmp); // final bearing var lon_destina = lon1*1+u.deg(L); //var num_lon_dest = lon_destina*1; //var lon_destina = new Number; var lonlat_destination = {lon: lon_destina, lat: u.deg(lat2)}; return lonlat_destination; } /** * 度换成弧度 * @param {Float} d 度 * @return {[Float} 弧度 */ function rad(d) { return d * Math.PI / 180.0; } /** * 弧度换成度 * @param {Float} x 弧度 * @return {Float} 度 */ function deg(x) { return x*180/Math.PI; } function drawOutline (ctx){ //开始路径 ctx.beginPath(); ctx.moveTo(70, 2); ctx.lineTo(472, 2); ctx.lineTo(550, 70); ctx.lineTo(550, 597); ctx.lineTo(472, 665); ctx.lineTo(70, 665); ctx.lineTo(2, 597); ctx.lineTo(2, 70); ctx.lineTo(70, 2); ctx.closePath(); //路径闭合 //if(strokeStyle) { ctx.strokeStyle = "gray"; ctx.lineWidth = 1; ctx.lineJoin = 'round'; ctx.stroke(); } //if(fillStyle) { ctx.fillStyle = 'rgba(135,162,174,1)'; ctx.fill(); } ctx.restore(); ctx.beginPath(); ctx.moveTo(40, 84); ctx.lineTo(511, 84); ctx.lineTo(511, 510); ctx.lineTo(390, 642); ctx.lineTo(169, 642); ctx.lineTo(40, 510); ctx.lineTo(40, 84); ctx.closePath(); { ctx.strokeStyle = "darkgray"; ctx.lineWidth = 1; ctx.lineJoin = 'round'; ctx.stroke(); } //if(fillStyle) { ctx.fillStyle = 'rgba(63,74,76,1)'; ctx.fill(); } } /**该方法用来绘制一个有填充色的圆角矩形 *@param cxt:canvas的上下文环境 *@param x:左上角x轴坐标 *@param y:左上角y轴坐标 *@param width:矩形的宽度 *@param height:矩形的高度 *@param radius:圆的半径 *@param fillColor:填充颜色 **/ function fillRoundRect(cxt, x, y, width, height, radius, /*optional*/ fillColor) { //圆的直径必然要小于矩形的宽高 if (2 * radius > width || 2 * radius > height) { return false; } cxt.save(); cxt.translate(x, y); //绘制圆角矩形的各个边 drawRoundRectPath(cxt, width, height, radius); cxt.fillStyle = fillColor || "#000"; //若是给定了值就用给定的值否则给予默认值 cxt.fill(); cxt.restore(); } /**该方法用来绘制圆角矩形 *@param cxt:canvas的上下文环境 *@param x:左上角x轴坐标 *@param y:左上角y轴坐标 *@param width:矩形的宽度 *@param height:矩形的高度 *@param radius:圆的半径 *@param lineWidth:线条粗细 *@param strokeColor:线条颜色 **/ function strokeRoundRect(cxt, x, y, width, height, radius, /*optional*/ lineWidth, /*optional*/ strokeColor) { //圆的直径必然要小于矩形的宽高 if (2 * radius > width || 2 * radius > height) { return false; } cxt.save(); cxt.translate(x, y); //绘制圆角矩形的各个边 drawRoundRectPath(cxt, width, height, radius); cxt.lineWidth = lineWidth || 2; //若是给定了值就用给定的值否则给予默认值2 cxt.strokeStyle = strokeColor || "#000"; cxt.stroke(); cxt.restore(); } function drawRoundRectPath(cxt, width, height, radius) { cxt.beginPath(0); //从右下角顺时针绘制,弧度从0到1/2PI cxt.arc(width - radius, height - radius, radius, 0, Math.PI / 2); //矩形下边线 cxt.lineTo(radius, height); //左下角圆弧,弧度从1/2PI到PI cxt.arc(radius, height - radius, radius, Math.PI / 2, Math.PI); //矩形左边线 cxt.lineTo(0, radius); //左上角圆弧,弧度从PI到3/2PI cxt.arc(radius, radius, radius, Math.PI, Math.PI * 3 / 2); //上边线 cxt.lineTo(width - radius, 0); //右上角圆弧 cxt.arc(width - radius, radius, radius, Math.PI * 3 / 2, Math.PI * 2); //右边线 cxt.lineTo(width, height - radius); cxt.closePath(); } </script> </html>

求助一个关于c++类的问题:有三个类(class A,class B,class C),如何实现在第三个类(class C)中同时调用class A和class B?

三个类如何相互调用?(不是多文件形式) 初学小白,望各位大佬告知!!!谢谢 假如有三个类(class A,class B,class C),如何实现在第三个类中同时调用class A和class B?

怎么把判断三角形三边长加到三角形面积计算里

三角形面积计算代码: package edu.jmi.shape; import java.util.Scanner; public class Sanjiaoxing extends Shape{ private float a;//私有属性,除该类外,其他地方均不能直接访问 private float b; private float c; private float h; //计算并返回周长,输入:无,返回:周长值 public float zhouChang(){ float zhou = a+b+c; return zhou; } public float mianJi(){ float mian = (a*h)/2; return mian; } //读取输入,计算并显示结果 void handle(){ //1 提示 System.out.println("请输入三角的三条边长和高"); //2 读取输入 Scanner sc = new Scanner(System.in); a = sc.nextFloat(); b = sc.nextFloat(); c = sc.nextFloat(); h = sc.nextFloat(); //计算 float zhou = zhouChang(); float mian = mianJi(); //输出 System.out.println("三角形周长是"+zhou+",面积是"+mian+""); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Sanjiaoxing san=new Sanjiaoxing(); san.a =6; san.b =5; san.c =4; san.h =4; System.out.println("请输入三角形的三边长和高:"); Scanner sc = new Scanner(System.in); san.a= sc.nextFloat(); san.b= sc.nextFloat(); san.c= sc.nextFloat(); san.h= sc.nextFloat(); float zc = san.zhouChang();//通过对象调用周长计算 System.out.println("周长:"+zc); float mj = san.mianJi(); System.out.println("面积:"+mj); }//main } 判断三边是否能成三角形: package edu.jmi.java1; import java.util.Scanner; public class Sanjiaoxing { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("输入三条边:"); Scanner sc = new Scanner(System.in); int i = sc.nextInt(); int j = sc.nextInt(); int k = sc.nextInt(); if(i>0 && j>0 && k>0 && i+j>k && i+k>j && j+k>i ){ System.out.println("Yes"); }else{ System.out.println("No"); } }//main }

如何用java打印等腰直角三角形

假設有一个等腰直角三角形,直角的兩個鄰邊一為水平線,一為垂直線;读入一个整数 代表直角顶点的位置,0:左上角、1:左下角、2:右上角、'3':右下角。再读入一个 5到20(含)的整数代表直角邻边的长度。以‘*’作为三角形边上的点,’@’作为三 角形内部的点,画出一个等腰直角三角形。写一个循环重复以上的步骤,直到读入的 字符不是0至3,则停止程序执行。

C语言编写一个程序,急求,哪位大神可以帮帮忙啊

设计一个程序,能够读取安卓导出的*.vcf通讯录文件并正确识别信息,并正确操作: 1.可以在电脑上新建一个通讯录,2.也可以导出安卓手机上的通讯录,3.支持生成的文件在程序中和手机中都能使用,4.要添加的选项参考安卓手机上的联系人

使用显示 int 数组的函数显示一个 int 是否合理?

``` void print(const int arr[], int count) { for (size_t i = 0; i != count; ++i) cout << arr[i] << endl; } int main() { int i = 0, j[2] = { 0,1 }; print(&i, 1); print(j, 2); return 0; } ``` 《C++ Primer》第五版,中文版。196 页。 答案给的是重载的,书里我看过的地方好像也没提到过这种情况应该如何处理。

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐