請問這是要用sin()函數來寫嗎
現在不知道要如何用程式將*印成正弦波的樣子
2006-11-15 19:57:24 · 3 個解答 · 發問者 韓霖 1 in 電腦與網際網路 ➔ 程式設計
例如:
http://www.chinesefreewebs.com/squrwell/sin.html
2006-11-16 07:43:57 · update #1
請問一下
我怎麼在瀏覽器觀看會出現很多Notice: Undefined offset: 0 錯誤訊息呢
2006-11-16 09:45:35 · update #2
我用蚯蚓大大與冷泡茶大大的版本
都會出現Notice: Undefined index以及Notice: Undefined offset的訊息
因為我PHP也是剛剛才學的
這些程式碼很多地方還看不出所以然
不過是不是因為用了$_GET才會出現這樣些訊息呢
2006-11-17 08:02:03 · update #3
打開php.ini怎麼發現有3個error_reporting = ...
現在改成;error_reporting = E_ALL & ~E_NOTICE - Show only errors
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR- Show all errors except for notices
error_reporting = E_ALL & ~E_NOTICE; display all errors, warnings and notices
但是還是一樣會顯示錯誤訊息...
2006-11-17 20:53:50 · update #4
這是不是PHP安裝的問題呢
2006-11-17 20:56:01 · update #5
我的PHP和Apache好像都還設定好...
PHP版本是4.4.4
Apache版本是2.0.58
我依照網路上的教學設定httpd存檔之後
重新啟動Apache都會錯誤
請問要如何正確設定呢
2006-11-19 14:32:54 · update #6
呵呵~~確實滿有趣的,所以我也搞了一個不過也折騰了我這老人家好久~~~可以用變數$c 改變寬(波長)很遺憾,搞不出像蚯蚓的版本連高都可以改變高是可以改變啦,不過不是固定數據變動所以~~~還是算失敗~~悶~~~$c=3; if ($_GET["c"]) $c=$_GET["c"];$zx_num=360/$c;for ($i=0; $i<=360; $i++) { $xn=round($i/$c); $yn=round(((number_format(-sin(deg2rad($i)),2)*100)+8)/8)+12; $x[$xn][$yn]="*";}for ($zy=0; $zy<=26; $zy++) { for ($zx=0; $zx<=$zx_num; $zx++) { if (!$x[$zx][$zy]) $x[$zx][$zy]="_"; echo $x[$zx][$zy]; } echo "
";}?>
2006-11-17 09:32:03 補充:
會出現很多Notice: Undefined offset: 0 錯誤訊息是哪一個版本(以上三個)會出現??
2006-11-17 22:31:55 補充:
會出現Notice: Undefined index以及Notice: Undefined offset的訊息那是否有執行出來,也就是說是有執行出來,並且會同時出現出現以上訊息還是根本就是執行錯誤因為會出現這些訊息那應該是您php.ini的error_reporting這個設定值設了error_reporting = E_ALL 的原因您找出php.ini檔,將裡面的error_reporting = E_ALL 改成error_reporting = E_ALL & ~E_NOTICE這樣就可以了
2006-11-17 22:35:03 補充:
三人版本我以整理在這裡
都可以正常執行
蚯蚓的版本
http://swc.sdcs.com.tw/YahooKnowledge/q26/sin1.php
酷走的版本
http://swc.sdcs.com.tw/YahooKnowledge/q26/sin2.php
在下的版本
http://swc.sdcs.com.tw/YahooKnowledge/q26/sin3.php
請恕在下直接收集整理
2006-11-17 22:44:23 補充:
以下這樣看程式碼或許會比交輕鬆一點
蚯蚓的版本
http://swc.sdcs.com.tw/YahooKnowledge/q26/sin1.phps
酷走的版本
http://swc.sdcs.com.tw/YahooKnowledge/q26/sin2.phps
在下的版本
http://swc.sdcs.com.tw/YahooKnowledge/q26/sin3.phps
2006-11-18 12:38:40 補充:
先前沒解釋清楚,抱歉~~~有很多行 ;error_reporting = XXXXXX 那都是設定範例你要把 ;error_reporting = E_ALL & ~E_NOTICE - Show only errors 這一行前面的 ; (分號)拿掉而其他的 error_reporting = XXXXXX 不管有幾行,通通在前面加上 ; (分號)存檔後還要記得重新啟動 apache
2006-11-18 12:39:35 補充:
這不是安裝PHP的問題,這是php.ini預設設定就是這樣當然,不一定每個版本php.ini的設定是這樣目前比較常用的整合套件如 Appserv , Wamp , Foxserv , EasyPHP...等等,可能都不見得一樣而您的我猜想應該是裝 Appserv因為 Appserv 裡 php.ini 的預設值這一行就是這樣設的error_reporting = E_ALL
2006-11-21 13:12:34 補充:
現在的錯誤訊息還在嗎??而且都一樣嗎??或是現在的錯誤訊息是什麼??
2006-11-17 03:36:47 · answer #1 · answered by 冷泡茶 6 · 0⤊ 0⤋
確實很有趣 ~
小弟依樣畫了個葫蘆 ~
for($n=0;$n<360;$n++)
{
$x[]=$n;
$y[]=-sin(deg2rad($n));
}
foreach ($x as $x_counter => $x_value)
{
if (fmod($x_counter,4)==0)
{
$draw_x[]=$x_value/4;
$draw_y[]=round($y[$x_counter]*7)+8;
}
}
for($y_axis=1 ; $y_axis < 16 ; $y_axis++)
{
for($x_axis = 0; $x_axis < 90 ; $x_axis++)
{
if(($draw_x[$x_axis]==$x_axis) and ($draw_y[$x_axis]==$y_axis))
{
echo "*";
}
else
{
echo "_";
}
}
echo "
";
}
?>
2006-11-16 17:36:35 · answer #2 · answered by 小呆 3 · 0⤊ 0⤋
這個很有趣, 寫一個送你, 還可以調整大小唷!
// sin.php?sx=90&sy=20
$sx=100;
$sy=16;
if ($_GET["sx"]) $sx=$_GET["sx"];
if ($_GET["sy"]) $sy=$_GET["sy"];
function xy_to_pos($x,$y) {
global $sx,$sy;
$xr=$sx/360; // 0 - 360 度
$yr=$sy/2; // 從 -1 .. 1
// y 記得轉換座標
return array (round($x * $xr) , $yr*2 - round($y * $yr + $yr));
}
$draw=array();
for ($x=0;$x<=360;$x++) {
$a=xy_to_pos($x, sin(deg2rad($x)));
// debug: print_r($a);
$draw[$a[0]][$a[1]] = 1;
}
for ($y=0; $y<=$sy ;$y++) {
for ($x=0; $x<= $sx; $x++)
if ($draw[$x][$y] == 1 ) echo "*"; else echo "_";
echo "
\n";
}
?>
2006-11-17 22:33:39 補充:
偷懶的話加上 error_reporting(E_ALL ^ E_NOTICE);在最前頭如果是比較嚴格的 error reporting 的話if (isset($_GET["sx"])) $sx=$_GET["sx"];if (isset($_GET["sy"])) $sy=$_GET["sy"];.... if (isset($draw[$x][$y]) and $draw[$x][$y] == 1 ) echo "*"; else echo "_";...應該就不會有 warning 了.
2006-11-16 08:54:18 · answer #3 · answered by Chiu 4 · 0⤊ 0⤋