[英]Having Freudian child parent problems with my objects. Need some pointers and/or Reference?
[英]Need some pointers
我正在嘗試找出c中的程序來計算螺栓圓圈圖案中的x,y坐標。 我的數學部分正確,但無法弄清楚如何列出起始角度和坐標而不是最后列出起始角度和坐標,並且度數不能超過360。這是代碼:
#include <stdio.h>
#include <math.h>
int main()
{
float x; //x location
float y; //y location
float h; //# of holes
float d; //diameter of bc
float a; //starting angle
int n; //hole count
printf("enter dia of circle\n");
scanf("%f", &d);
printf("enter number of holes\n");
scanf("%f", &h);
printf("enter starting angle, counter clockwise from 3:00\n");
scanf("%f", &a);
float r = d / 2; //radius
float k = 360 / h; //degrees between holes
for (n = 0; n < h; n++) {
a = a + k;
x = r * (cos(a * M_PI / 180));
y = r * (sin(a * M_PI / 180));
printf("%.3f, %.3f, %.2f\n", x, y, a);
}
return 0;
}
我在c中執行此操作以使代碼正確,然后將其放入iPhone的目標c中,哪種是列出每個x&y坐標和角度的輸出的最佳方法? 例如,我將使用表格視圖嗎? 感謝您的任何建議。
我建議將a = a + k
替換a = a + k
以下形式:
float base_a;
printf("enter starting angle, counter clockwise from 3:00\n");
scanf("%f", &base_a);
for (n = 0; n < h; n++) {
a = base_a + n*k;
重復添加浮點數會導致錯誤增加。 也許這不會不管這個(畢竟,你只使用float
真是讓人不是double
秒-但誤差累積“快”與float
總比double
S,所以它是一個更加緊迫的問題),但解決方法是足夠容易:將差值與計數相乘,然后將其加到恆定的基數中。
我也有點擔心比較n < h
- n
是int
而h
是float
。 雖然我通常擔心浮點循環變量,但我更擔心將浮點數用於孔數。 那是問題所指明的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.