155 Reputation

9 years, 115 days

@acer, Thank you for this interrest...

Thank you for this interresting alternative method using the Maple's transform command. I appreciate!

The only small hassle when you want to use the negative area for filling, you have to transpose the 2d plot in the positive region and then restore it in 3d in the negative region.

But overall, I like this method.

Thanks again.

Best.

Guy.

Well done and thank you again.

I take this opportunity to ask you if there would not exist an analytical formula using the complex analysis or the conformal geometry to fill any concave 3d plane curve? No?

From given 3d parametric concave  plane curve C(t), we get a 3d surface S(s,t), then use Maple's plot3d(S(s,t), s = 0..1, t = 0..2*Pi, options);

Or then we must simply consider that it is a mathematical problem not solved analytically at the present time, although we know how to do it numerically using algorithms.

Best.

Guy.

@tomleslie,Thanks for your 2d case, but ...

Thanks for your 2d case, but as I clarified, we know how to do it perfectly in 2d for all concave curves. So, the Kitonum 17825 's answer suits me the most for 3d and for any orientation.

Guy.

@dharr   Finally, I see that the ...

@dharr

Finally, I see that the Maple's fdiscont command seems to be the best solution.

x1 := 0:
x2 := Pi:
f := x-> 2 + floor(x + 5*sin(x)):

fdiscont(f(x), x = x1..x2);

[-0.593607866940289*10^(-5) .. 0.000320180364024403, 0.167044077255513 .. 0.167612171188469, 0.338432390706186 .. 0.339000554376301, 0.518914164348197 .. 0.519482265387794, 0.716187666319970 .. 0.716746365259254, 0.945305996983405 .. 0.945871355453450, 1.25169685698879 .. 1.25226232290992, 2.31157841012941 .. 2.31249469359618, 2.65259662949180 .. 2.65351254896426, 2.92459155914235 .. 2.92514123322049]

@dharr    Thank you for your...

I know pretty much what you mean.

It is therefore more complicated than one imagines for the general case. There is therefore no effective solution for the second example.

Even using the Maple's fsolve, it is not easy to find all the solutions in a given range.

Guy.

@vv ,   Okay, thanks anyway ...

@vv ,

Okay, thanks anyway for your astuce.

I don't think the LED effect required a lot of complex work from an expert in graphics and rendering under a sophisticated software, but just a simple way to disable the lightmodel on only one surface among others and without impact these surfaces.

The subject could have been titled quite simply:

"How to Disable the lightmodel of a Single Surface without Impacting the Others?"

I think, in the future, a simple line of codes in the Maple's display command could be look like this (or similarly):

L := LIST_OF_LIST_OF_PLOT3D_OPTIONS:

for i in L do

if member(lightmodel = none, L, i) then IGNORE_AMBIENT_PROCEDURE( ... )

else lightmodel = light3  # Default value

fi

od:

Maybe an amendment to update the display command in the next version coulb be submit.

Best.

Guy.

@vv , Thank you. It works in this ...

@vv ,

Thank you. It works in this simple case, BUT, when I wish to change the direction of the light, the Maple's User Lighting window disables all light models when I click on the Ambient button to choose the desired ambient light.

Fig. 1 The Ambient light setting disables all light models.

It could be very complicated and punitive for an advanced assembly (see below) of more than a thousand of the surfaces at least because I would have to apply an exemplary color gradation to what you have just shown me at each surface just to show few LED lights !!!

Fig. 2: Plot of an inital advanced aircraft surface without LEDs.

Fig. 3: Final objective: Exterior lighting systems have to be independent of light direction under Ambient of Maple's User Lighting window.

I think there must be a solution where we only take care of the surface regarding the LED effect and we let all the other surfaces brighten up by the default light.

OR another could be to create a secondary light source, is it possible?

Thanks.

Guy.

@Carl Love , Thank you for your re...

Thank you for your response, but the lightmodel = none disables on all surfaces and unfortunately including those which are not intended to represent the LED.

A surface with regular light:
BALL := plot3d(<cos(t)*cos(s), cos(t)*sin(s), sin(t)>, s = 0..2*Pi, t =-Pi/2..Pi/2, color = "Blue"
#, lightmodel = light1
):

An illuminated surface representing the LED
LED := plot3d(<2 + cos(t)*cos(s), cos(t)*sin(s), sin(t)>, s = 0..2*Pi, t =-Pi/2..Pi/2, color = "Yellow"
, lightmodel = none
):

Assembly
display(BALL, LED);

Guy.

@Carl Love  Thank you so much. Yes...

Thank you so much. Yes, that’s very close to my dream syntax!!!

Yes! Vote up!

Very good response.
Big thank.

Indeed, the same problem affects:

> F := proc()
> local x :
> return cos(x)
> end:

Now, write:
> F := proc()  #Shift + Enter
local x :
> return cos(x)
> end:

- The advantage is that there are fewer prompts and both better reading.

- The drawback (but acceptable) is that if you decide, like in earlier version, to delete only one line instantly with "Ctrl + Delete" among a big block, all the block is deleted unintentionally.
It must therefore be very careful in selecting manually with the mouse cursor.

My apologies, I wanted to talk about the...

My apologies, I wanted to talk about the Maple's Worksheet Files *.mw instead of *.wm.

Thank you, it works with Shift+Enter.

But in previous versions, it works anyway with chevron ">", example:

> display(
>  plot(f(x), x = x1..x2)
>, plot(g(x), x = x1..x2)
>, plot(h(x), x = x1..x2) );

But not in Maple 2015.

 Page 1 of 1
﻿